接上一篇文章 程序员们,面试的时候面对这种题可要长点心了!
今天来看下一个问题:
let a = 2; switch (a) { case (3, 2, 5): console.log(1); case (2, 3, 4): console.log(2); default: console.log(3); break; }
上面的代码会输出什么 ?
答案是 : 3 。
在这里,值得我们了解的知识点就是 “逗号表达式”。
解析
MDN对逗号表达式的解释为 “逗号操作符 对它的每个操作数求值(从左到右),并返回最后一个操作数的值。”
显然,上面代码中第一个 case 的返回值为5,第二个为4 , 与 变量a的值都不相等,所以最后输出 3 。
下面再来一个题,加深印象:
let i, j; let result = 0; for (i = 0, j = 0; i < 2, j < 4; i++, j++) { result = i + j; } console.log(result);
上面的代码输出结果是 6 。
解析
最重要的就是看循环结束条件,它是由一个逗号表达式 “i<2,j<4”组成,根据上面提到的逗号表达式的特点可知,其实质上等于“j<4”,所以结果是 6 。