Javascript高階之流控制語句
阿新 • • 發佈:2020-12-19
流控制語句
if 語句
- 語法
if(condition) statement1 else statement2
do-while 語句
- 語法
do{
statement
}while(expression);
while 語句
- 語法
while(expression) statement
for 語句
-
語法
for(初始化; 條件表示式; 迴圈後表示式) statement
-
概念
- 使用let宣告迭代器變數
- 初始化,條件表示式,迴圈後表示式都不是必需的
- 如果只包含條件表示式,那麼for迴圈就變成了while迴圈
// 無窮迴圈 for(;;){ doSomething(); }
// while迴圈
for(;條件表示式;){
doSomething();
}
for-in 語句
- 語法
for(property in expression) statement
// 迴圈顯示BOM物件window的所有屬性
for(const proname in window){
console.log(proname);
}
- 概念
- for-in語句是一種嚴格的迭代語句,用於列舉物件中的非符號鍵屬性
- for-in語句返回物件屬性的順序因瀏覽器而異
- 如果for-in迴圈要迭代的變數是null或undefined,則不執行迴圈體
for-of 語句
- 語法
for(property of expression) statement
for(const el of [2, 4, 6, 8, 10]){
console.log(el);
}
- 概念
- for-of語句是一種嚴格的迭代語句,用於遍歷可迭代物件的元素
- for-of迴圈會按照可迭代物件的next()方法產生值的順序迭代元素
- 如果嘗試迭代的變數不支援迭代,則for-of語句會丟擲錯誤
標籤語句
-
語法
label:statement
-
概念
- 標籤語句用於給語句加標籤
- 標籤語句的典型應用場景是巢狀迴圈
break 和 continue 語句
- 概念
- break 和 continue 語句為執行迴圈程式碼提供了更嚴格的控制手段
- break語句用於立即退出迴圈,強制執行迴圈後的下一條語句
- continue語句用於立即退出迴圈,但會再次從迴圈頂部開始執行
- break和continue都可以與標籤語句一起使用,返回程式碼中特定的位置
let num= 0;
outermost:
for(let i=0; i<10; i++){
for(let j=0; j<10; j++){
if(i==5&&j==5){
break;
}
num++;
}
}
console.log(num); // 95
let num= 0;
outermost:
for(let i=0; i<10; i++){
for(let j=0; j<10; j++){
if(i==5&&j==5){
break outermost;
}
num++;
}
}
console.log(num); // 55
let num= 0;
outermost:
for(let i=0; i<10; i++){
for(let j=0; j<10; j++){
if(i==5&&j==5){
continue;
}
num++;
}
}
console.log(num); // 99
let num= 0;
outermost:
for(let i=0; i<10; i++){
for(let j=0; j<10; j++){
if(i==5&&j==5){
continue outermost;
}
num++;
}
}
console.log(num); // 95
with 語句
-
語法
with (expression) statement;
-
概念
- with語句的用途是將程式碼作用域設定為特定的物件
- 使用with語句的主要場景是針對一個物件反覆操作
- 不推薦使用
let qs= location.search.substring(1);
let hostName= location.hostname;
let url= location.href;
// 等價於
with(location){
let qs= search.substring(1);
let hostName= hostname;
let url= href;
}
switch 語句
- 語法
switch(expression){
case value1:
statement
break;
case value2:
statement
break;
case value3:
statement
break;
default:
statement
}
- 概念
- switch語句可以用於所有資料型別
- 條件的值不需要是常量,也可以是變數和表示式
switch('你好 中國'){
case '你好'+' 中國':
console.log('success');
break;
default:
console.log('fail');
}
let num= 25;
switch(true){
case num<0:
console.log('小於0');
break;
case num>0:
console.log('大於0');
break;
default:
console.log('等於0');
}