一、js標簽語句
直接上代碼
for(let i = 0; i < 10; i++){console.log("頂層循環");for(let j = 0; j < 10; j++){console.log("內層循環",i,j);if(i * j > 30){console.log("退出頂層循環");break;}}
}
如上面的代碼,雙層循環,滿足i * j > 30
的時候,需要直接退出循環,但是這樣添加break
只能退出內層循環,一般的做法都是如下,添加一個flag標記
for (let i = 0; i < 10; i++) {console.log("頂層循環");let flag = false;for (let j = 0; j < 10; j++) {console.log("內層循環", i, j);if (i * j > 30) {console.log("退出頂層循環");flag = true;break;}}if (flag) {break;}
}
這種方式確實也能實現功能,但是不優雅,推薦使用下面這種寫法
outer:for (let i = 0; i < 10; i++) {console.log("頂層循環");for (let j = 0; j < 10; j++) {console.log("內層循環", i, j);if (i * j > 30) {console.log("退出頂層循環");break outer; //給頂層for循環打一個標記,隨便命名,在break的時候使用就行了}}
}
標簽語句通常與break或continue語句一起使用,以控制代碼的執行流程
二、++運算符
let a = 1;
const b = a + ++a * a++;
console.log(a,b);
++a和a++都是表達式,只要是表達式,就有返回結果;a++是先返回a,再自增,++a是先自增再返回a
所以上面的代碼就成了
const b = 1 + 2 * 2;