• 当心JavaScript奇葩的逗号表达式


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

      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

  • 相关阅读:
    相对嵌套布局
    转:Android控件属性
    layout_weight属性分析
    Node.js 中文乱码解决
    转:正则表达式30分钟入门
    转: 再谈select, iocp, epoll,kqueue及各种I/O复用机制
    多线程调试
    GDB调试增强篇
    GDB调试
    笔趣阁
  • 原文地址:https://www.cnblogs.com/lwming/p/11167384.html
Copyright © 2020-2023  润新知