逗號表達式
剛入職新公司,屬于公司萌新一枚,一天下午對著屏幕看代碼架構時。
BI項目組長給我看了一道面試別人的JS面試題。
雖然答對了,但把理由說錯了,照樣不及格。
話不多說,直接上題:
var a = 1;
switch (a) {
case 2:
console.log(2)
break;
case 1, 2, 3: // 這里case是對比幾呢?
console.log(1)
break;
default:
break;
}
// result:最后什么都不會輸出
看完題如果答對并且知道理由的小伙伴,僅當加深印象;如果你也像我一樣不明所以,請仔細往下看。
逗號表達式
表達式1,表達式2,表達式3,...... ,表達式n
逗號表達式的要領:
- 逗號表達式的運算過程為:從左往右逐個計算表達式
- 逗號表達式作為一個整體,它的值為最后一個表達式(也即表達式n)的值
- 逗號運算符的優先級別在所有運算符中最低
有了上述的概念,再回過頭來看面試題就很清晰了。
打鐵趁熱,再來一道題來加深下理解。
var i, j, k;
for (i = 0, j = 0; i < 10, j < 6; i++, j++) {
k = i+j;
}
console.log(k);
// result:10
執行步驟如下表
i | j | k |
---|---|---|
0 | 0 | 0 |
1 | 1 | 2 |
2 | 2 | 4 |
3 | 3 | 6 |
4 | 4 | 8 |
5 | 5 | 10 |
一直埋頭寫代碼,沒用到的知識總是容易忘記,剛好碰到,索性做下筆記加深印象,努力學習知識,僅為裝X。
作者:以樂之名
本文原創,有不當的地方歡迎指出。轉載請指明出處。