從新鞏固JS(三)——JavaScript語句

從新鞏固JS系列,都是比較基礎的東西,能夠進行查漏補缺,很快看完,這是第三篇。 其餘JS從新鞏固系列javascript

1. 條件語句

1.1 if else語句

//當條件爲真時,執行語句1,條件爲假時,執行語句2。其中,else部分能夠省略
if (條件) { 
    語句1 
} else { 
    語句2 
}

//例子:
let score = 75
if ( score > 80) {
    console.log('A')
} else if ( score > 60) {
    console.log('B')
} else {
    console.log('C')
}
// score爲75,小於80但大於60,故輸出: B
複製代碼

1.2 switch語句

// 當 表達式的值 等於 值1 時,執行 語句1,遇到break語句則跳出switch語句,若都沒匹配到值,則執行default中的語句。
switch (表達式) {
    case1: 
        語句1
        break
    case2: 
        語句2
        break
    default: 
        語句3
        break	
}

//例子
let score = 'B'
switch ( score ) {
    case 'A':
        console.log('> 80')
        break
    case 'B':
        console.log('60 ~ 80')
        break
    default :
        console.log('< 60')
}
// score的值跟case的'B'相匹配,故輸出: 60 ~ 80,遇到break,結束switch語句
複製代碼

注意:通常狀況下,咱們在每一個case語句後都要加上break語句來跳出switch語句。若不添加,則會執行匹配到的case語句後的全部語句,直到遇到break爲止。java

2. 循環語句

2.1 while語句

//當 表示達 爲真時,執行 語句1 直到 表達式 爲假。
while ( 表達式 ) {
    語句1
}
複製代碼

注意:在語句1中必定要對表達式進行操做,使其在必定循環次數內變爲假,不然會致使死循環。post

2.2 do while語句

//先執行語句1,而後再根據表達式的真假狀況來決定是否繼續執行語句1
do {
    語句1
} while ( 表達式 )
複製代碼

注意:無論什麼狀況下,do while語句總會先執行一次語句1性能

2.3 for語句

//首先執行初始化部分,而後進行循環條件的判斷,若爲真,則執行語句1,最後再執行更新表達式部分。若爲假,則結束for循環。
for ( 初始化; 循環條件; 更新表達式) {
    語句1
}
複製代碼

注意初始化更新表達式部分都不是必需的,初始化部分能夠放在for語句外部,而更新表達式部分能夠放在語句1中。ui

2.4 for in語句

用於遍歷對象的屬性。spa

//遍歷對象的屬性
for ( 屬性名 in 對象) {
    語句1
}
複製代碼

注意for in語句也會遍歷原型鏈上的屬性(原型鏈相關可參考:幫你完全搞懂JS中的prototype、__proto__與constructor(圖解)),若只想遍歷對象自身的屬性,可使用如下方式:.net

for ( let 屬性名 in 對象) {
    if ( 對象.hasOwnProperty( 屬性名 ) ) {
        語句1
    }
}
複製代碼

3. 控制語句

3.1 continue語句

continue語句用於循環語句中,跳過當前的循環,進入下一次循環。prototype

3.2 break語句

break語句用於控制流程中,直接跳出循環語句或者switch語句。code

4. 異常捕獲語句

/** * 將可能發生異常的 語句1 放到try語句塊中,若 語句1 執行時有異常,則被 catch語句 捕獲, * 接着執行 語句2 ,最後再執行 finally語句塊 中的 語句3。 * 其中 finally語句塊 中的 語句3,無論 語句1 是否有異常都會執行。 */
try {
    語句1
} catch ( exception ) {
    語句2
} finally {
    語句3
}

//例子
try {
    console.log(myName)
} catch ( exception ) {
    alert( exception)
} finally {
    alert('bad dream!')
}
/** * 在try語句塊中,咱們試圖輸出變量myName的值,可是變量myName並未定義,因此出現異常被catch語句塊捕獲, * 而後彈窗出現內容:ReferenceError: myName is not defined, * 最後再執行finally語句,彈窗出現內容:bad dream! */
複製代碼

5.with語句(不推薦使用)

可讓咱們在訪問對象屬性時更加簡短。with語句在性能上存在問題,以及在做用域上可能會引發沒必要要的混淆,ES5的嚴格模式中也禁用了該語句,不推薦使用。對象

with ( 表達式 ) {
    語句
}

//例子:
let cc = {
    name: 'cc',
    age: 100,
    company: {
        name: 'BEST',
        address: 'Hang Zhou'
    }
}

with(cc) {
    console.log(`company name:${company.name}, company address: ${company.address}`)
}
//輸出: company name:BEST, company address: Hang Zhou

//替代的方法:
let company = cc.company
console.log(`company name:${company.name}, company address: ${company.address}`)
//輸出: company name:BEST, company address: Hang Zhou
複製代碼
相關文章
相關標籤/搜索