3、基础语法
3.6 运算符
3.6.1 算数运算符
3.6.2 赋值和扩展运算符
3.6.3 比较运算符
3.6.4 逻辑运算符
3.6.5 三目运算符
3.7 控制语句
3.7.1 选择
- 单选择
if (条件) { 语句体; }
- 双选择
if (条件) { 语句体1; } else { 语句体2; }
- 多选择
if (比较表达式1) {
语句体1;
}
else if (比较表达式2) {
语句体2;
}
else if (比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
- switch结构
switch (表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; }
3.7.2 循环
- while
while (判断条件语句) { 循环体语句; }
- do...while
do { 循环体语句; } while (判断条件语句);
- for
for (初始化语句;判断条件语句;控制条件语句) { 循环体语句; }
- 死循环
while (true) { } for ( ; ; ) { }
- break和continue 停止本层循环、停止本次循环继续下一次
3.8 数组
3.8.1 数组定义
3.8.2 基本操作
- 数组的下标从0开始,不会出现下标越界
- 获取数组指定下标的值: 数组名[下标];(如果下标不存在,不会报错,显示undefined)
- 设置数组指定下标的值: 数组名[下标] = 值;(如果下标不存在,则自动扩容)
- 获取数组的长度: 数组名.length;
- 设置数组的长度: 数组名.length = 值;
- 设置数组的属性: 数组名.属性名 = 值; 数组名["属性名"] = 值;
- 获取数组的属性: 数组名.属性名; 数组名["属性名"];
3.8.3 数组遍历(index为下标、索引)
- for循环遍历(不遍历属性)
for (var index = 0; index < 数组长度; index++ ) { }
- for ... in(不遍历索引中的undefined)
for (var下标名 in 数组) { }
- forEach(不遍历属性和索引中的undefined)
数组.forEach(function(element,index) { })
3.8.4 数组提供的操作方法
3.9 函数
3.9.1 函数的定义
- 函数声明语句
function 函数名([参数列表]) { }
- 函数定义表达式
var 变量名/函数名 = function([参数列表]) { }
- Function构造函数(了解)
var 函数名 = new Function([参数列表],返回值);
3.9.2 函数的参数
- 定义函数时设置形参,调用函数时传递实参
- 实参可以省略,则形参为undefined
- 如果形参名相同,则以最后一个为准
- 可以设置参数的默认值
- 参数为值传递,传递副本;参数是引用传递,传递的是地址,操作的是同一个对象
3.9.3 函数的调用
- 常用调用模式
函数名([参数列表]);
- 函数调用模式(函数有返回值)
var 变量名 = 函数名([参数列表]);
- 方法调用模式
对象.函数名([参数列表]);
3.9.4 return
- 如果方法没有返回值时使用return,返回的是undefined
- 在没有返回值的方法中,用来结束方法
- 在有返回值的方法中,一个是用来结束方法,一个是将值带给调用者
3.9.5 函数的作用域
- 在JS中,只有函数中才有作用域
- 在函数中,存在局部变量和全局变量
- 在函数中,如果声明变量时未使用var修饰符,则该变量时全局变量