第2章 JavaScript语法

准备工作

  • 编写js需要准备一个编译器和游览器,js必须通过HTML/XHTML文档编写

js的编写位置

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    
    <script>
        ...
    </script>
</head>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    
    <!--  外部引入js -->
   	<script src="./index.js"></script>		
</head>

<body>
    
   	// 更为推荐的编写位置,这样能使浏览器更快地加载页面
   	<script src="./index.js"></script>	
</body>

编程语言

  • 程序设计语言分为解释型和编译型两大类
  • 编译型语言需要一个编译器把语言编写出来的源代码翻译为直接在计算机上执行的文件。
  • 解释型语言需要一个解释器,对于js而言游览器中的JavaScript解释器将直接读入源代码并执行
  • 用编译型语言编写的代码有错误,这些错误在代码编译阶段就能被发现。而解释型语言代码中的错误只能等到解释器执行到有关代码时才能被发现。
  • 与解释型语言相比,编译型语言往往速度更快,可移植性更好,但它们的学习曲线也往往相当陡峭。

语法

语句

  • 只有按照正确的语法编写出来的语句才能得到正确的解释。
first statement;		// 语句最后最好加上;号

注解

  • 注解不会被JavaScript解释器去解释并执行,注解是给程序员看的
// 		// 单行注解,快捷键ctrl+/
/* */   // 多行注解,快捷键alt+shift+a

变量

  • 会变的事物叫做变量
a=10;	// 默认为var a=10
b=20;	// var b=20
  • 声明变量
// 方式一
var a;
var b;

// 方式二
var a,var b;
  • 变量赋值
// 方式一
var a=10;
var b=20;

// 方式二
var a=10,b=20;

// 方式三
var a;
var b;
a=10;
b=20;
  • 变量区分大小写,必须由下划线和数字(不能再开头),字母组成,尽量遵循小驼峰命名法(首个字母小写后面大写),变量不能和关键字重名

数据类型

  • 必须声明数据类型的语言叫做强类型语言,不用声明的叫弱类型语言(js)
  • 弱类型语言意味着程序员可以在任意时刻改变变量的类型
var str="123";	// 字符串类型
str=33			// 数值类型

1. 字符串

  • 字符串可以用双引号和单引号声明
  • 如果字符串中要用引号遵循外双内单,外单内双
var str1="aaa";
var str2='bbb';

2. 数值

var a=10;
var b=-10;
var c=10.3;

3. 布尔值

var flag1=true;
var flag2=false;

4. 数组

  • js的数组能够存储多个不同类型的数据
  • 数组就是有序集合一般用数字表示索引
// 声明数组
var arr1=Array(4);	// 表示声明了一个长度为4的数组
var arr2=Array();	// 不确定长度声明
var arr3=[];			// 简写声明

// 数组添加值,分别在第0个位置到第3个位置添加1
arr1[0]=1;
arr1[1]=true;
arr1[2]=1;
arr1[3]=1;
var ar2=Array(1,2,false,4);	// 自动匹配对应的位置并且添加值
arr3=[1,2,"123",false];		// 赋值

5. 对象

  • 对象就是无序集合一般用字符串表示索引
  • 数组和对象可以配合使用
// 声明对象
var obj1=Object();
var obj2={};

// 对象赋值
obj1.name="zhangsan";
obj2={name:"zhangsan"};

操作

算数运算符

// 赋值运算符
var a=10;	
var b=20;

// 基本运算符
a+b;	// 30
a-b; 	// -10
a*b;	// 200
a/b;	// 0.5;
a%b;	// 10;

// 其他运算符用法类似
a+=1;	// a=11
...


// 先用后变,先变后用
a++;
++a;
a--;
--a;

// 字符串与运算符
var  str="123";

str+321					// 123321
str+"true"					// 123true

比较运算符

  • 可以使用全等(===)来同时比较值和类型
var a=10;
var b=20;

a==b	// false
a!=b	// true
a>=b	// false
a<=b	// true

逻辑运算符

var a=10;
var b=20;

// 并且
a>=10&&b>=20	// true
a>=10&&b>20		// false

// 或
a>=10||b>20		// true

// 取反
!true			// false

条件语句

  • 选择一种满足条件的语句执行
  • if()里面必须是bool类型或者运算结果为bool类型
if(true){
	...
}else if(true){
	...
}else{
	...
}

switch(num){
	case 1:
		...
		break;
	case 2:
		...
		break;
	default:
		...
}

循环语句

  • 满足条件会一直执行
while(true){
	...
}

for(let i=1;i<=10;i++){
	...
}

函数

  • 用于封装常用的代码块,提高代码复用率
  • 全局作用域是可以在整个js文件中调用,局部作用域只能在函数中/代码块中调用,如果变量名相同遵循就近原则
// 定义函数
function add(a,b){
	return a+b;
}

// 调用函数
var c=add(10,20)		// 30

对象

  • 对象中的成员可以是属性也可以是方法
	obj.name		// 通过.调用对象内部的属性
	obj.say()		// 通过.调用对象内部的方法
  • 内置对象,js内部已经定义好的对象
const arr=new Array()
arr.length		// 返回数组的长度

const date=new Date()
data.getDay()	// 当前当日

...
相关推荐
007php00712 分钟前
GoZero对接GPT接口的设计与实现:问题分析与解决
java·开发语言·python·gpt·golang·github·企业微信
breakthrough_0117 分钟前
创建一个简单的 Nuxt.js 应用
开发语言·javascript·ecmascript
OEC小胖胖1 小时前
Vue 3 中 onUnload 和 onPageScroll 使用详解
前端·javascript·vue.js·前端框架·web
Jason-河山2 小时前
利用Java爬虫获得店铺详情:技术解析
java·开发语言·爬虫
秋田君2 小时前
uniapp中使用Mescroll实现下拉刷新与上拉加载项目实战
javascript·uni-app
就是有点傻2 小时前
C#中面试的常见问题005
开发语言·面试·c#·wpf
确实菜,真的爱3 小时前
vue3 element plus 把表格数据导出到excel
javascript·vue.js·excel
一舍予3 小时前
nuxt3项目搭建相关
开发语言·javascript·vue.js·nuxt
新时代的弩力3 小时前
【Cesium】--viewer,entity,dataSource
前端·javascript·vue.js
无恃而安3 小时前
localStorage缓存 接口 配置
javascript·vue.js·缓存