1. 程式人生 > >JavaScript 整理筆記(二)

JavaScript 整理筆記(二)

1.1 語法

1.1.5 語句

在WEB瀏覽器中每個<script>標籤中包含一個被編譯且立即執行的編譯單元。
一個編譯單元包含一組可執行的語句。

var 用來定義變數,變數定義當在某個語句內,則稱其為語句的私有變數。當定義在window下時,則稱改變數為全域性變數。
迴圈語句(while、for、do...while)允許有一個可選的前置標籤(label),配合break使用。類似於錨點的作用。
例1:
    var num = 0;
    outer:
        for (var i = 0; i < 10; i++) {
            for (var j = 0; j < 10; j++) {
                if (i == 5 && j == 5) {
                    // TODO
                    break oute;
                }
                num++;
            }
        }
    console.log(num); // 55
例2:
    var num2 = 0;
    outer2:
        for (var i = 0; i < 10; i++) {
            for (var j = 0; j < 10; j++) {
                if (i == 5 && j == 5) {
                    // TODO
                    continue outer2;
                }
                num2++;
            }
        }
    console.log(num2); // 95

語句通常情況下會按照順序從上至下執行。條件語句(if、switch)、迴圈語句(while、for、do...while)、強制跳出語
句(break、return、throw)和函式呼叫來改變執行順序。
條件語句中的值一下情況被當做假:
    false
    null
    undefined
    ""
    0
    NaN
其他的全為真值。

switch 語句執行一個多路分支。通常多路分支個數是已知的。表示式的值和所有指定的case條件(不一定是常量)進行匹配
(匹配是用 "===")
例:
    switch(null){
        case 0:
            console.log(0);
            break;
        default:
            console.log(1);
    }
    // 列印 1
    switch(NaN){
        case NaN:
            console.log(0);
            break;
        default:
            console.log(1);
    }
    // 列印 1
注意:每個case從句後必須跟隨一個強制跳轉語句。可用break退出switch語句。

for語句 一種是形式是由3個可選從句控制:
    for(var i = 0; i < 10; i++){
        // TODO
    }
另一種是:
    for(item in obj){
        if(obj.hasOwnProperty(item)){ // 判斷該屬性名是否是物件的成員,還是來自於原型鏈
            // TODO
        }
    }
該方法會列舉一個物件的所有屬性名(或鍵名)。

while 和 do...while 唯一的區別就是do...while會先執行一次再進行判斷,至少會執行一次。

try...catch...finally 用於捕捉程式碼塊的異常
例:
    try{
        if(a){
            throw "我捕捉到一個錯誤"; // err 的值,可以是物件{name: message}形式
        }
    } catch(err){
        console.log(err);
    } finally{
        console.log("不論有沒有異常,我都會執行");
    }
    // 我捕捉到一個錯誤
    // 不論有沒有異常,我都會執行
通常用於不確定程式碼塊會不會報異常,從而避免導致整個程式碼報錯不能繼續執行。

return 語句會導致從函式中提前返回。可以設定返回值,不設定則返回 undefined。return 與表示式之間不允許換行。

--------內容繫個人整理,如有錯誤,歡迎指出。謝謝!--------