码迷,mamicode.com
首页 > 编程语言 > 详细

当心JavaScript奇葩的逗号表达式

时间:2019-07-11 00:43:14      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:break   一个   for   default   逗号   等于   它的   str   逗号表达式   

看看下面的代码输出什么?

  let a = 2;
    switch (a) {
        case (3, 2, 5):
            console.log(1);
            break
        case (2, 3, 4):
            console.log(2);
            break
        case (3, 2):
            console.log(3);
            break
        default:
            console.log(4);
            break;
    }

输出为: 3 

解析:“逗号操作符 对它的每个操作数求值(从左到右),并返回最后一个操作数的值。”

上面代码中第一个 case 的返回值为5,第二个为4 , 与 变量a的值都不相等,第三个为2,与a相等,所以最后输出 3 。

 

再看一例子:

        let i, j;
        let result = 0;
        for (i = 0, j = 0; i < 3, j < 7; i++, j++) {
            result = i + j
        }
        console.log(result)

输出为:12

解析:根据逗号操作符对它的每个操作数求值(从左到右),并返回最后一个操作数的值的特性可知逗号表达式 “i<3,j<7”,其实质上等于“j<7”,所以结果是 12

 

当心JavaScript奇葩的逗号表达式

标签:break   一个   for   default   逗号   等于   它的   str   逗号表达式   

原文地址:https://www.cnblogs.com/lwming/p/11167384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!