if語句
- 語法格式:if (condition) statements else statements
- 注意:括號中的判斷條件可以是任何表達式,求值結(jié)果不一定是布爾值,ECMAScript會自動調(diào)用Boolean()和你熟將它轉(zhuǎn)成布爾值
do-while語句
后測試循環(huán)語句,循環(huán)體中的代碼執(zhí)行后才會對退出條件進行求值,所以循環(huán)體內(nèi)的代碼至少執(zhí)行一次
-
例子
let i=0; do{ i+=2; } while(i<10);
while語句
- 先測試循環(huán)語句,先檢測退出條件,然后再執(zhí)行循環(huán)體的代碼,所以循環(huán)體內(nèi)的代碼可能不會被執(zhí)行
for語句
先測試語句
-
例子
let count = 0; for(let i=0;i< count; i++){ // 小括號里分別是初始化;條件表達式;循環(huán)后表達式 console.log(i); } -
初始化,條件表達式,循環(huán)后表達式都可以省略,所以可以寫一個無窮循環(huán)
for (; ; ){ statements; } -
如果只寫了條件表達式,省略另外兩個,那么for循環(huán)就變成了while循環(huán)
let count = 10; for(;i< count;){ console.log(i); i++; }
for-in語句
一種嚴格的迭代語句,用于枚舉對象中的非符號鍵屬性
語法格式:for(property in expression) statement
-
例子
for (const i in window){ document.write(i); }- 打印出BOM對象window的所有屬性
- 所有可枚舉的屬性都會返回出來,但是順序不一樣
如果要迭代的變量是null或undefined,就不執(zhí)行循環(huán)體
for-of語句
一種嚴格的迭代語句,用于遍歷可迭代對象的元素
語法格式:for(property of expression) statement
-
例子
for (const i of [2,4,6,8]){ document.write(i); } for-of循環(huán)會按照可迭代對象的next()方法產(chǎn)生值的順序迭代元素,如果嘗試迭代的變量不支持迭代,那么就報錯
標(biāo)簽語句
給指定的語句加上標(biāo)簽,可以通過break或continue引用,主要用在嵌套循環(huán)中
語法格式:label: statement
-
例子
start:for(let i=0;i<10;i++){ console.log(i); }
break和continue
break語句用于立即退出循環(huán)
continue語句用于立即退出當(dāng)次循環(huán)
-
break語句和標(biāo)簽語句一起使用
let n = 0; outer:for (let i = 0; i < 10; i++) { for (let j = 0; j < 10; j++) { if (i === 5 && j === 5) { break outer; } n++; } } console.log(n); // 最后輸出結(jié)果是55
with語句
用于將代碼作用域設(shè)置為特定的對象
語法格式:with(expressin) statement;
-
當(dāng)需要對一個對象反復(fù)操作的時候,可以用with語句
let a = location.search.substring(1); let b = location.hostname; let c = location.href; // 上面代碼中,每一行都用到了location,那么可以改成下面的代碼 with(location){ let a = search.substring(1); let b = hostname; let c = href; } 嚴格模式下不允許使用with語句
switch語句
-
switch語句借鑒了其他語言的switch語句,但是ECMAScript給它賦予了獨有的特性
- switch語句可以用于所有數(shù)據(jù)類型
- 條件的值不需要是常量,可以是變量或表達式
-
例子
switch ("hello world") { case "hello" + " world": console.log("打個招呼"); break; // break用來跳出switch循環(huán),不寫break那么每個條件都會去判斷 case "goodbye": console.log("再見"); break default: console.log("這是默認消息"); }