js權威指南學習筆記(三)語句

一、聲明語句javascript

若是用var聲明的變量沒有初始化,那麼這個變量的值會被初始化爲undefined。
函數聲明語句的語法以下:
 
 
 
 
4
4
 
 
 
 
 
1
console.log(funcname());     //在此調用該函數正常輸出
2
function funcname([arg1 [, arg2 [..., argn]]]) { //要傳入的參數
3
    statements    //執行語句
4
}
 
 
函數聲明語句一般出如今javascript代碼的最頂層,也能夠嵌套在其餘函數體內。
函數定義語法:
 
 
 
 
4
4
 
 
 
 
 
1
console.log(funcname); //在此調用該函數 打印undefined ,由於只是函數名提早了,還沒執行到函數體。
2
var funcname = function(type) {
3
    statements
4
}
 
 
 函數聲明和函數定義的 區別
在javascript解析時,函數聲明提高到了當前做用域的頂部,同時包括函數名稱和函數體都提早了,然而函數定義只有函數名提早到了當前做用域的頂部,函數體並無被提早。
二、條件語句
switch語句語法:
 
 
 
 
14
14
 
 
 
 
 
1
switch(n) {
2
    case expression1:
3
        //執行代碼塊1
4
        break;
5
    case expression2:
6
        //執行代碼塊2
7
        break;
8
    case expression3:
9
        //執行代碼塊3
10
        break; 
11
    default:
12
        //執行代碼塊4
13
        break;
14
}
 
 
說明:當執行這條switch語句的時候,它首先計算n的值,而後查找case字句中的表達式expression一、expression2等和n的值是否相同( 這裏的相同是按照「===」運算符進行比較的),相同,就執行這個case所對應的代碼塊,若是都找不到,那麼將會執行default中的代碼塊。
每一個case關鍵字後面均可以跟隨任意的表達式。
三、循環
for/in循環:
 
 
 
 
3
3
 
 
 
 
 
1
for (variable in object) {
2
    statement
3
}
 
 
for/in循環遍歷時,有「可枚舉」屬性的纔會遍歷到。可是並不是一個對象的全部屬性都是可枚舉的,經過javascript代碼添加到對象的屬性是可枚舉的,而內部對象的預約義屬性(如方法)一般是不可枚舉的。
適用於遍歷對象屬性成員
四、跳轉
(1)標籤語句:經過給語句定義標籤,就能夠在程序的任何地方經過標籤名引用這條語句。也能夠對多條語句定義標籤。如:
 
 
 
 
4
4
 
 
 
 
 
1
mainloop: while (token != null) {
2
    //代碼
3
    continue mainloop;     //跳出該循環,執行下一次循環
4
}
 
 
break和continue是javascript中惟一可使用語句標籤的語句。當須要跳出多層循環的時候,該標籤語句就很是有用。
(2)throw語句
當javascript代碼運行時錯誤或者程序使用throw語句就會顯式地拋出異常。
 
 
 
 
x
9
 
 
 
 
 
1
function factorial(x) {
2
    if (x < 0) {
3
        throw new Error("x不能爲負數");
4
    }
5
    for (var f = 1; x > 1; f *= x, x--);
6
    return f;
7
}
8
 
        
9
console.log(factorial(-1));     //傳入的參數爲負數,會拋出一個Error對象,並顯示錯誤信息
 
 
(3) try/catch/finally 語句
它是javascript的異常處理機制。
具體說明以下:
 
 
 
 
18
 
 
 
 
 
1
try {
2
    //通常狀況下這裏的代碼會從頭執行到尾而不會產生任何問題,
3
    //但有時會拋出一個異常,要麼是由throw語句直接拋出異常,
4
    //要麼是經過調用一個方法間接拋出異常
5
}
6
catch(e) {
7
    // 當且僅當try語句塊拋出了異常,纔會執行這裏的代碼
8
    //這裏能夠經過局部變量e來得到對Error對象或者拋出的其餘值的引用
9
    //這裏的代碼塊能夠基於某種緣由處理這個異常,也能夠忽略這個異常,
10
    //還能夠經過throw語句從新拋出異常
11
}
12
finally {
13
    //無論try語句塊是否拋出異常,這裏的邏輯老是會執行,終止try語句塊的方式有:
14
    // 1)正常終止,執行完語句塊的最後一條語句
15
    // 2)經過break、continue或return語句終止
16
    // 3) 拋出一個異常,異常被catch從句捕獲
17
    // 4) 拋出一個異常,異常未被捕獲,繼續向上傳播
18
}
相關文章
相關標籤/搜索