《JavaScript权威指南》笔记三
js程序无非就是一个以分号分隔2的语句集合。
5语句
条件语句(if switch)
循环语句 (for while)
跳转语句 (break return throw)
空语句
//初始化一个数组a
for(var i =0; i < a.length; a[i++] = 0) /* empty */ ;
5.3 声明语句
var function声明变量、函数
函数声明只能出现在js代码最顶层,也可以嵌套在其他函数体内(也必须在顶部)
5.4 条件语句
5.4.1
if(sxpression)
statement 1
else
statement2
5.4.2
switch(expression){
case expression:
//代码块
break;
}
用break或return(函数中)终止
如没有break,会从匹配到的case向下逐个执行,直到结尾
表达式匹配是按 ===(恒等运算符) 来匹配,表达式和case的匹配并不会做人任何类型转换。
5.5 循环
5.5.1 while
while(){
}
5.5.2 do while
do{
}while()
5.5.3 for
for(初始化操作者;循环判断条件;计数器变量的更新)
5.5.4 for/ in
for(variable in object)
statement(语句或语句块)
variable(一个变量或者表达式)
var o = {name:'smy',sex:'女'};
var arr = [];
i = 0;
for(arr[i++] in o);
console.log(arr); //['name','sex']
for(var i = 0;i < arr.length;i++){
console.log(o[arr[i]]) // smy 女
}
5.6 跳转
break跳转到循环或者其他语句的结束
continue 是终止本次循环的执行并开始下一次循环的执行。
return 跳出函数体,并提供返回值
throw 触发或 ‘抛出’异常
5.6.1 标签语句
identifier :statement
break/continue 可以使用标签语句
statement可以是普通语句也可以是代码块
test: for (var i = 0; i < 3; i++) {
console.log('visible');
continue test; //continue跳出本次循环进行下次循环,break跳出整个循环
console.log('invisible');
}
5.6.2 break
立即退出最内层循环或switch
5.6.3 continue
不退出循环,而是转而执行下一次循环。
5.6.4 return
5.6.5 throw
5.6.7 try/catch/finally
try{
}
catch(e){
//try抛出异常,执行这里代码
}
finally{
}
//try中有return,continue,break跳转语句,在跳出之前,先执行finally
如若有异常,而且与try语句相关的catch不是处理这个异常的,先执行finally,再向上匹配
var foo = function () {
try{
//抛出一个异常
}
finally {
return 1;
}
};
foo(); //1
5.7 其他语句类型