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 其他語句類型