一道JS面試題引起的血案

逗號表達式

剛入職新公司,屬於公司萌新一枚,一天下午對着屏幕看代碼架構時。
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:最後什麼都不會輸出

看完題若是答對而且知道理由的小夥伴,僅當加深印象;若是你也像我同樣不明因此,請仔細往下看。code

逗號表達式

表達式1,表達式2,表達式3,...... ,表達式n

逗號表達式的要領:

  1. 逗號表達式的運算過程爲:從左往右逐個計算表達式
  2. 逗號表達式做爲一個總體,它的值爲最後一個表達式(也即表達式n)的值
  3. 逗號運算符的優先級別在全部運算符中最低

有了上述的概念,再回過頭來看面試題就很清晰了。blog

打鐵趁熱,再來一道題來加深下理解。it

var i, j, k;
for (i = 0, j = 0; i < 10, j < 6; i++, j++) {
    k = i+j;
}
console.log(k); 

// result:10

執行步驟以下表console

i j k
0 0 0
1 1 2
2 2 4
3 3 6
4 4 8
5 5 10

一直埋頭寫代碼,沒用到的知識老是容易忘記,恰好碰到,索性作下筆記加深印象,努力學習知識,僅爲裝X。table

做者:以樂之名
本文原創,有不當的地方歡迎指出。轉載請指明出處。class

相關文章
相關標籤/搜索