08-JavaScript基础-逗号和三目运算符

作者: 极客江南 | 来源:发表于2017-08-12 01:48 被阅读853次

    逗号运算符

    • 在JavaScript中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把多个表达式连接起来组成一个表达式, 称为逗号表达式。

      • 一般形式形式: 表达式1,表达式2,… …,表达式n;
      • 例如: a = 1 + 1,b = 3 * 4, c = 10 / 2;
    • 求值过程

      • 表达式1,表达式2,… …,表达式n;
      • 逗号表达式的运算过程是:先算表达式1,再算表达式2,依次算到表达式n
      • 整个逗号表达式的值是最后一个表达式的值
        var a, b, c, d;
        /*
        1.先计算表达式1, a = 2
        2.再计算表达式2, b = 12
        3.再计算表达式3, c = 5
        4.将表达式3的结果返回给d
        */
        d = (a = 1 + 1,b = 3 * 4, c = 10 / 2);
        console.log(d); // 5
        
    • 逗号运算符使用注意

      • 程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值
      • 并不是在所有出现逗号的地方都组成逗号表达式,例如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。
      var a, b, c;  //这里的逗号只是分隔符
      function sendMessage(num, content) { //这里的逗号只是分隔符
            console.log(num, content);
       }
      
    • 练习

        求变量b的值
        var a, b;
        b = (a=4, ++a, a * 7);
    

    三目运算符(条件运算符)

    • 格式: 条件表达式 ? 语句1 : 语句2;

    • 求值规则:

      • 如果条件表达式为true,则执行语句1,并返回执行结果
      • 如果条件表达式为false,则执行语句2,并返回执行结果
        // 弹第一个
        true?alert("语句1") : alert("语句2");
        // 弹第二个
        false?alert("语句1") : alert("语句2");
        
    • 注意点:

      • 条件运算符?和:是一对运算符,不能分开单独使用
      • 如果条件的表达式的求值结果是一个非布尔值, 会将其转换为布尔值然后在运算
        // 弹第二个
        null?alert("语句1") : alert("语句2");
        // 弹第一个
        "abc"?alert("语句1") : alert("语句2");
        
    • 练习

    //    用户从输入三个整数,找出最大值,然后输入最大值
    //    1.定义三个变量, 用于保存用户输入的三个整数
        var a, b, c;
    //    2.利用window.prompt接收用户输入的数据
    //    注意点: 通过prompt返回给我们的数据是String类型, 需要转换为Number
    //    利用Number函数和+效果一样
        a =  Number(window.prompt("请输入内容")); 
        b =  +(window.prompt("请输入内容")); 
        c =  +(window.prompt("请输入内容")); 
    //    3.定义一个变量保存最大值
        var max;
        /*
    //    4.利用三目运算符进行两两比较
        max = a > b ? a : b; // 9 > 6 ? 9 : 6; max = 9;
    //    如果关系运算符两边都是字符串, 不会转换为数值, 而是比较Unicode码
        max = max > c ? max : c; // 9 > 10 ? 9 : 10; max = 10;
        */
        // 企业开发中并不是代码越少越好,如下方式(a > b ? a : b)需要计算两次, 性能没有上面一种方式好, 并且阅读性也不如上面一种方式
        max = (a > b ? a : b) > c ? (a > b ? a : b) : c;
        console.log(max);
    

    学习交流方式:
    1.微信公众账号搜索: 李南江(配套视频,代码,资料各种福利获取)
    2.加入前端学习交流群:
    302942894 / 289964053 / 11550038

    相关文章

      网友评论

      • 27e8e91d62c9:写的不错,学懂了一点
      • 曹玄亮:var a,b,c;
        a = Number(window.prompt(""));
        b = Number(window.prompt(""));
        c = Number(window.prompt(""));
        var max;
        max = (a>b?a:b)>c?(a>b?a:b):c;
        console.log(max);
      • 魏泰宏:江哥这么晚了,早点休息
        魏泰宏:@小邵168 哈哈哈
        魏泰宏:@极客江南 激动:heart_eyes:,话说江哥js啥时候放出来
        极客江南:一写东西就忘记时间:joy:

      本文标题:08-JavaScript基础-逗号和三目运算符

      本文链接:https://www.haomeiwen.com/subject/dzrdrxtx.html