zoukankan      html  css  js  c++  java
  • js运算中的几个注意点

    1.除了字符串参与的加法外,非Number类型的值进行运算时,会将这些值转换为Number然后再运算

    var res = true + 100;
    console.log(res); // =101
    var res1 = true + false;
    console.log(res1);//=1
    var res2 = null + 10;
    console.log(res2);//=10
    // 字符串做减法也会转换为Number
    var res1 = 100 - '123';
    console.log(res1);//=-23

    2. 任何值和NaN做运算都得NaN

    3. 任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作

    4. 除0结果是无限大Infinity

    <script>
        var res = 100 / 0;
        console.log(res);//Infinity
    </script>

     5. *=运算符运算顺序

    <script>
        var a = 100;
        a *= 100 + 30; // a = a * (100 + 30)
        console.log(a);//=13000
    </script>

    6. 非数值与数值进行比较时,会将其转换为数字然后在比较

        console.log(1 > false); // true
        console.log(1 >= true); // true
        console.log(1 >= 'it10'); // true
        console.log(1 > null); // true

    7. 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较, 而会分别比较字符串中字符的Unicode编码

    8. null、undefined 、NaN比较

    console.log(null == null);// true
    console.log(undefined == undefined);// true
    console.log(NaN == NaN); // false

    var num = NaN;
    console.log(isNaN(num)); // true
    console.log(null == undefined); // true
    console.log(null === undefined); // false

    9. 逻辑短路

      &&:第一个为假,第二个将不会继续运算

      ||:第一个为真,第二个将不会继续运算

    10. 逻辑运算返回值

    //对于非Boolean类型的数值, 逻辑与会自动将其转换为Boolean类型来判断
    //逻辑与运算
    // 如果条件A成立, 不管条件B成不成立都返回条件B数值本身
    var result = 123 && 'abc';
    console.log(result);//='abc'
    var result = 123 && 0;
    console.log(result);//=0
    //如果条件A不成立, 则返回条件A的数值本身
    var result = null && 0;
    console.log(result);//=null
    //逻辑或运算
    var result = 123 || 'abc';
    console.log(result);//=123
    var result = null || 0;
    console.log(result);//=0

    11. 对一个值进行两次取反,它不会变化

    12. js括号里有多个逗号分隔的表达式会怎么运算和取值?

         依次从左至右运算,取值为最后一个表达式的值

    <script>
    var num1, num2, num3, num4;
    var result = (num1 = 2 + 3, num2 = 3 * 5, num3 = 4 /7, num4 = 3 + 5);
    console.log(result); //result=8
    
    var a, b;
    b = (a=3, --a, a * 5);
    console.log(b);//b=10
    </script>
  • 相关阅读:
    2020年4月13日
    2021年4月12日
    梦断代码阅读笔记02
    Shell基本命令
    远程链接Linux
    Linux文档与目录结构
    VMware与Centos系统安装
    linux 第一天
    day88 Vue基础
    python 生成随机验证码
  • 原文地址:https://www.cnblogs.com/chuanzi/p/9076320.html
Copyright © 2011-2022 走看看