一篇文章帶你瞭解JavaScript-語句
目錄
- 表示式語句
- 複合語句和空語句
- 複合語句
- 空語句
- 宣告語句
- var
- function
- 條件語句
- if
- if/else
- else if
- switch
- 迴圈
- while
- do/while
- for
- for/in
- 跳轉
- 標籤語句
- break語句
- continue語句
- return語句
- throw語句
- try/catch/finally語句
- 其他語句型別
- with語句
- debugger語句
- “use strict”
- 總結表
- 總結
表示式語句
具有副作用的表示式是中最簡單的語句
a= "hello"+name; i *= 3; a++; delete o.x; alert(a); window.close();
複合語句和空語句
複合語句
Script中還可以將多條語句聯合在一起,形成一條複合語句(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來標http://www.cppcns.com識迴圈的結尾並進入迴圈條件判斷;其次,和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表單中的元素hfAYkjnEg:
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()內的程式碼是嚴格程式碼。
總結表
總結
本篇文章就到這裡了,希望能給你帶來幫助,也希望您能夠多多關注我們的更多內容!