運算式陳述句
具有副作用的運算式是JavaScript中最簡單的陳述句
a= "hello"+name;
i *= 3;
a++;
delete o.x;
alert(a);
window.close();
復合陳述句和空陳述句
復合陳述句
JavaScript中還可以將多條陳述句聯合在一起,形成一條復合陳述句(compound statement),只須用花括號將多條陳述句括起來即可,
{
x=a;
y=b;
alert(x);
alert(y);
}
關于陳述句塊有幾點需要注意
第一,陳述句塊的結尾不需要分號,塊中的原始陳述句必須以分號結束,但陳述句塊不需要,
第二,陳述句塊中的行都有縮進,這不是必需的,但整齊的縮進能讓代碼可讀性更強,更容易理解,
最后,需要注意,JavaScript中沒有塊級作用域,在陳述句塊中宣告的變數并不是陳述句塊私有的,
空陳述句
空陳述句(empty statement)則恰好相反,它允許包含0條陳述句的陳述句,
;
for(i=0;i<a.lengthl;a[i++]=0);
if(a==0);
宣告陳述句
var
var陳述句用來宣告一個或者多個變數
var i;
var j=0;
var a,b;
var x=0,y=1;
var宣告的變數是無法通過delete洗掉的,
如果var陳述句中的變數沒有指定初始化運算式,那么這個變數的值初始為undefined,
function
關鍵字function用來定義函式
var f = function(x){ return x+1; }
function f (x) {return x+1; }
f是要宣告的函式的名稱的識別符號,
函式名之后的圓括號中是引數串列,引數之間使用逗號分隔,
當呼叫函式時,這些識別符號則指代傳入函式的實參,
函式體是由JavaScript陳述句組成的,陳述句的數量不限,且用花括號括起來,
在定義函式時,并不執行函式體內的陳述句.
條件陳述句
if
if (username == null) //如果username是null或者undefined
username = "J" //對其進行定義
if/else
嵌套使用if陳述句時,必須注意確保else陳述句匹配正確的if陳述句
if(i == j)
{
if(j==k){
console.log("i等于k");
}
}else{ //i不等于j時執行else的陳述句塊
console.log("i不等于j");
}
else if
if (n == 1){
//執行代碼塊
}else if (n == 2){
//執行代碼塊
}else{
//之前的條件都為false時執行這里的代碼塊
}
switch
switch(n){
case 1:
//如果n === 1,執行這里的代碼塊
break; //停止執行
case 2:
//如果n === 2,執行這里的代碼塊
break; //停止執行
case 3:
//如果n === 3,執行這里的代碼塊
break; //停止執行
default:
//如果都不匹配執行這里的代碼塊
break; //停止執行
}
回圈
JavaScript中有4種回圈陳述句:while、do/while、for和for/in,
while
var count = 0;
while (count < 10){
//count小于10時執行代碼塊
console.log(count);
count++;//控制count避免出現無限回圈(死回圈)
}
變數count的初始值是0,在回圈執行程序中,它的值每次都遞增1,當回圈執行了10次,運算式的值就變成了false(即,變數count的值不再小于10),這時while就會結束,JavaScript解釋器將執行程式中的下一條陳述句,
do/while
do/while回圈和while回圈非常相似,只不過它是在回圈的尾部而不是頂部檢測回圈運算式,這就意味著回圈體至少會執行一次,
var count = 0;
do {
//count小于10時執行代碼塊
console.log(count);
}while (count++ < 10);
首先,do回圈要求必須使用關鍵字do來標識回圈的開始,用while來標識回圈的結尾并進入回圈條件判斷;其次,和while回圈不同,do回圈是用分號結尾的,
for
for(1;2;3)
1,2,3分別負責初始化操作、回圈條件判斷和計數器變數的更新,
輸出數字0~9
for (var count=0;count<10;count++)
console.log(count);
for/in
for (variable in object)
variable通常是一個變數名,也可以是一個可以產生左值的運算式或者一個通過var陳述句宣告的變數,總之必須是一個適用于賦值運算式左側的值,
object是一個運算式,這個運算式的計算結果是一個物件,
遍歷物件屬性成員
for (var p in o)
console.log(o[p])
跳轉
標簽陳述句
陳述句是可以添加標簽的,標簽是由陳述句前的識別符號和冒號組成.
通過給陳述句定義標簽,就可以在程式的任何地方通過標簽名參考這條陳述句,也可以對多條陳述句定義標簽,盡管只有在給陳述句塊定義標簽時它才更有用,比如回圈和條件判斷陳述句,通過給回圈定義一個標簽名,可以在回圈體內部使用break和continue來退出回圈或者直接跳轉到下一個回圈的開始,break和continue是JavaScript中唯一可以使用陳述句標簽的陳述句,
m: while(a != null){
....
continue m;
....
}
break陳述句
單獨使用break陳述句的作用是立即退出最內層的回圈或switch陳述句,
當回圈終止條件非常復雜時,在函式體內使用break陳述句實作這些條件判斷的做法要比直接在回圈運算式中寫出這個復雜終止條件的做法簡單很多,
for (var i = 0;i<a.length; i++){
if(a[i]==target)break;
}
JavaScript中同樣允許break關鍵字后面跟隨一個陳述句標簽
break mname;
continue陳述句
continue陳述句和break陳述句非常類似,但它不是退出回圈,而是轉而執行下一次回圈,continue陳述句的語法和break陳述句語法一樣簡單.
continue;
continue mname;
return陳述句
return陳述句只能在函式體內出現,如果不是的話會報語法錯誤,當執行到return陳述句的時候,函式終止執行,并回傳return 后面的值,
如果沒有return陳述句,則函式呼叫僅依次執行函式體內的每一條陳述句直到函式結束,最后回傳呼叫程式,
throw陳述句
所謂例外(exception)是當發生了某種例外情況或錯誤時產生的一個信號,拋出例外,就是用信號通知發生了錯誤或例外狀況,捕獲例外是指處理這個信號,即采取必要的手段從例外中恢復,在JavaScript中,當產生運行時錯誤或者程式使用throw陳述句時就會顯式地拋出例外,
function factorial(x){
if(x<0) throw new Error("x不能是負數");
//如果輸入引數是非法的,則拋出一個例外
return f;
}
try/catch/finally陳述句
其中try從句定義了需要處理的例外所在的代碼塊,catch從句跟隨在try從句之后,當try塊內某處發生了例外時,呼叫catch內的代碼邏輯,catch從句后跟隨finally塊,后者中放置清理代碼,不管try塊中是否產生例外,finally塊內的邏輯總是會執行,盡管catch和finally都是可選的,但try從句需要至少二者之一與之組成完整的陳述句,
try{
//需要處理的例外的代碼塊
}catch(e){
//try陳述句拋出例外后 執行這里的代碼
//可以基于特定的原因處理這個例外
//可以通過throw陳述句重新拋出例外
}finally{
//不管try陳述句塊是否拋出了例外,這里的代碼總是執行
//終止try陳述句塊的方式有:
//1.正常終止,執行完陳述句塊的最后一條陳述句
//2.通過break、continue或return陳述句終止
//3.拋出一個例外,例外被catch捕獲
//4.拋出一個例外,例外未被捕獲,繼續向上傳播
}
其他陳述句型別
with陳述句
一個可以按序檢索的物件串列,通過它可以進行變數名決議,with陳述句用于臨時擴展作用域鏈,
可能會使用類似下面這種運算式來訪問一個HTML表單中的元素:
document.forms[0].address.value
如果這種運算式在代碼中多次出現,
則可以使用with陳述句將form物件添加至作用域鏈的頂層:
with(document.forms[0]){
name.value='';
address.value='';
email.value='';
}
這種方法減少了大量的輸入,不用再為每個屬性名添加document.forms[0]前綴,這個物件臨時掛載在作用域鏈上,當JavaScript需要決議諸如address的識別符號時,就會自動在這個物件中查找,
debugger陳述句
debugger陳述句通常什么也不做,然而,當除錯程式可用并運行的時候,JavaScript解釋器將會(非必需)以調式模式運行,實際上,這條陳述句用來產生一個斷點(breakpoint),JavaScript代碼的執行會停止在斷點的位置,這時可以使用除錯器輸出變數的值、檢查呼叫堆疊等,
“use strict”
“use strict”是ECMAScript 5引入的一條指令,指令不是陳述句(但非常接近于陳述句),
使用“use strict”指令的目的是說明(腳本或函式中)后續的代碼將會決議為嚴格代碼(strict code),如果頂層(不在任何函式內的)代碼使用了“use strict”指令,那么它們就是嚴格代碼,如果函式體定義所處的代碼是嚴格代碼或者函式體使用了“use strict”指令,那么函式體的代碼也是嚴格代碼,如果eval()呼叫時所處的代碼是嚴格代碼或者eval()要執行的字串中使用了“scrict code”指令,則eval()內的代碼是嚴格代碼,
總結表
參考資料:JavaScript權威指南
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/293623.html
標籤:其他
上一篇:jQuery常用的API
下一篇:jQUery學習筆記
