JavaScript 語句

JavaScript 語句:express

  一、它是以分號結束的,用來執行以使某件事發生數組

  二、JavaScript 程序能夠當作一系列可執行語句的集合,通常爲順序執行,但咱們可使用條件、循環或跳轉語句來改變執行順序函數

 

JavaScript 語句分類:優化

  一、表達式語句:諸如賦值和函數調用這些有反作用的表達式,能夠做爲獨立的語句,咱們把這種表達式看成語句的用法也稱作表達式語句spa

// 賦值表達式
count = 831143;
// 函數調用
console.log(count);

 

  二、複合語句和空語句:咱們可使用花括號將多條語句括起來造成複合語句,而使用分號產生一條空語句debug

// 花括號建立複合語句
{
    x = Math.PI;
    sx = Math.sin(x);
    console.log("sin(PI) = " + sx);
}

// 分號產生空語句,這裏將數組內容所有置爲 0
for (let i = 0; i < arr.length; arr[i++] = 0) ;

注:JavaScript 爲函數做用域,而不是塊級做用域,因此語句裏聲明的變量並非語句塊私有的調試

 

  三、聲明語句:用來聲明或定義變量或函數,如 var、let 和 functioncode

// 聲明變量
var a = 12;
let b = 4;
console.log(a/b);

// 聲明函數
function test(num) {
    console.log(num * num);
}
test(a);    // 輸出 a^2

注:var 聲明的變量沒法經過 delete 刪除orm

 

  四、條件語句:經過判斷指定表達式的值來決定執行仍是跳過某些語句,包括 if/elseswitch對象

// expression 爲表達式,statement 是當 expression 爲真時執行的語句
if (expression)
    statement;

// 咱們也能夠添加 else [if] 語句增長其分支
if (expression1)
    statement1;
else if (expression2)
    statement2;
...
else
    statement_else;

// switch 經過 expression 的值來肯定執行哪一個 case 的語句,case 匹配操做採用 "===" 而不是 "==",因此匹配時不作類型轉換
// 語句裏的 break 是可選的,若無 break 它會在匹配的 case 順序執行下去,直到遇到 break 或 switch 結束時才結束,若全部 case 都不匹配則執行 default
switch(expression) {
   case 1:
        statement1;
        break;
    case 2:
        ...
    case n:
        statementn;
        break;
    default:
        statement_default;
        break;
}

 

  五、循環語句:咱們能夠把該語句當成程序路徑的一條迴路,即讓一部分代碼重複執行

          該類語句包含 whiledo/whileforfor/in

    a、在執行 while 語句以前,JavaScript 解釋器首先計算 expression 的值,若它的值爲假,則跳過 statement 轉而執行下一條語句;

       若值爲真,則執行 statement 語句,並從新計算 expression 的值

// 計算 1 + 2 + ... + 9
let sum = 0, count = 9;
while (count > 0) {
    sum = sum+count;
    count--;
}
console.log(sum);

    b、do/while 與很是類似,但該語句會先執行 statement 的內容,再進行判斷,即該語句循環體至少執行一次

// 若爲 while 循環,則該循環體不會被執行,由於 while 先進行表達式判斷
let num = 0;
do{
    num = (num+1) * 2;
}while (num > 0 && num < 100);

    c、for (initialize; test; increment) 先由 initialize 初始化原始值;test 對值進行判斷,若假則退出;increment 對該變量進行相應的更新

// 輸出 1^2, 2^2, ..., 9^2
for (let i = 1; i < 10; ++i) {
    console.log(i * i);
}

    d、for/in 循環能夠用來遍歷對象

// 輸出數組元素
let arr = [1, 2, 3, 4,  5];
for (let num in arr)
    console.log(num); 

 

  六、跳轉語句:它使程序的執行從一個位置跳轉到另外一個位置

    a、break:退出最內層循環或 switch 語句

    b、continue:執行下一次循環,只能在循環體內使用

    c、return:指定函數調用後的返回值,只能在函數體內出現,不然報語法錯誤

    d、throw:用來拋出異常,結束 throw 同一塊後面的代碼,再由相應 catch 捕獲處理

    e、try/catch/finally:用來處理異常,try 嘗試執行語句,如有異常,則由 catch 塊來處理,finally 中放置清理代碼

注:若 break 和 continue 帶標籤,則退出或繼續相應標籤的代碼段;

  異常會沿着 JavaScript 方法的詞法結構和調用棧向上傳播,若未找到對應的異常處理程序,則程序會將該異常當成錯誤來處理;

  無論 try 塊內是否有異常,finally 語句塊內的代碼總會執行,即便有其餘跳轉語句跳出 try/catch/finally 語句,finally 仍會在跳出前執行

 

  七、其餘語句:with 和 debugger

    a、with (obj):將 obj 添加到做用域鏈的頭部,而後執行後續代碼,最後將做用域鏈恢復到原始狀態

// with 語句很是難於優化,且與沒有使用 with 語句的代碼相比,它運行得更慢
with (document.form[0]) {
    // 等價於 document.form[0].name.vaule = "Lemon"
    name.value = "Lemon";
}

    b、debugger:用來產生一個斷點,代碼執行時會中止在斷點位置,從而使咱們能夠調試程序

function check(obj) {
    if (obj === undefined)
        debugger;
    ...
}

 

注:嚴格模式下禁止使用 with 語句;debugger 語句不會啓動調試器,但若是調試器已經在運行中,這條語句纔會真正產生一個斷點

相關文章
相關標籤/搜索