switch语句
//格式
switch (值){ //switch中的值,可以是数字,可以是字符串,甚至可以是表达式
case 值1:
代码1;
break; //不能省略break,省略会有贯穿问题,代码会一直往下执行,直到遇到break 为止
case 值2:
代码2;
break;
...
default:
代码n;
}
- 执行到
break
就结束switch语句 - 执行过程
- switch语句根据传入的值进行对比, 匹配
case
中的值, 就执行case
中的代码 - 没有匹配值, 就执行
default
里的代码
- switch语句根据传入的值进行对比, 匹配
- switch性能比if高, 但if使用频率在开发中用的多
for循环
//格式
for (初始语句; 循环判断语句; 末尾语句 ){
循环体 (一段代码)
}
- 初始语句: 在循环之前执行, 一般定义一个初始值为0的变量
- 循环判断语句: 如果条件为真, 就执行循环体
- 末尾语句: 循环一次之后执行, 一般是对初始值中的变量自增或自减
- 循环体: 反复执行的一段代码
break和continue的区别
- break在循环中, 立即退出循环, 强制执行循环后的语句(不执行下一次循环)
- continue在循环中, 立即退出循环(continue后的语句都不执行), 但是从循环的顶部继续执行(执行下一次循环)
while语句
while (条件){
循环体
}
do{
循环体
}while(条件);
- while中一定要条件限制(如i++),如果没有就是死循环
- do..while,至少执行一次循环(哪怕条件为假)
函数
function 函数名(参数1 ,参数2,....) {
代码块
}
- 函数的声明:
- 往内存中保存一段代码
- 函数命名规则和变量的命名规则一致
- 参数: 就是一个变量, 在函数生命中变量用于接收从外部传过来的值
- 函数的调用:
函数名();
- 就是从内存中获取代码块执行的过程
- 函数的参数:
- 有参数的函数叫有参函数, 无参数的函数叫无参函数
- 形参: 形式参数, 函数声明时定义的参数, 形参是用来接收实参传过来的值
- 实参: 实际参数, 函数调用时定义的参数, 往里面传的值, 变量, 表达式都可以
- 注意: 函数使用前, 需要先声明再调用
函数的返回值
-
return
的两个作用- 函数返回值
- 结束函数, 不再往下执行
- 函数根据返回值可分为:
- 有返回值得函数, 无返回值的函数
函数的4种类型
-
无参数无返回值函数
function sum(){ //函数声明 var a=1, b=1; console.log(a+b); } sum(); //函数调用
-
无参数有返回值函数
function sub(){ var a=1, b=1; return a-b; } console.log(sub());
-
有参数无返回值函数
function mult(a, b){ console.log(a* b); } mult(1, 1);
-
有参数有返回值函数
function div(a, b){ return a/b; //不写return, 函数调用返回undefined } console.log(div(1, 1));
注意: 函数没有重载, 函数名相同(接受的参数类型数量不同即可), 后定义的函数会覆盖先定义的函数, 所以函数名不能相同
函数的注意点
- 有参函数, 实参的个数 > 形参的个数, 形参会依次从左往右取实参的值
- 有参函数, 实参的个数 < 形参的个数, 没有接受值得形参值为undefined, 运行结果为NaN
- 函数不能自己调用自己, 将造成死循环(除非有限制条件, 递归调用)
-
函数名.length
: 获取形参的参数个数 -
arguments.length
: 获取实参的参数个数
全局变量 局部变量
js作用域是根据函数来划分的, 变量存在的范围就是作用域.
全局变量
- 定义: js中函数外部的变量就是全局变量, 可以在任何地方使用的变量
- 作用域:
script
开始标签到结束标签之间的范围 - 注意: 全局变量要先声明初始化后, 才能使用
局部变量
- 定义: 在函数内部的变量就是局部变量
- 作用域: 函数花括号里的范围
- 注意:
- 局部变量在函数外取不到
- 局部变量若和全局变量同名, 局部变量会屏蔽全局变量作用范围
- 变量取值遵循就近原则, 如果使用一个变量, 会在当前范围内找, 一层一层往上找, 直到最上面也没就报错