• js中的操作符


    写在前面

    js语法

    DOM对象(把body,div,p等节点树看成一个对象)

    BOM对象(把浏览器的地址栏历史记录DOM等装在一个对象)

    浏览器是宿主,但js的宿主不限于浏览器,也可以是服务器,如node.js。

    运算符:

    //js中拼接运算符
    console.log(2+3);
    console.log('hello'+''+'world');
    console.log(2+3+4+'haha'+5+6);//9haha56,一旦碰到非法数字后,后面的一律理解为“拼接”

    例如

    var num1=5;
    var num2=10;
    var message="The sum of 5 and 10 is"+num1+num2;
    alert(message);//因为每个+都是独立的,第一个将字符串与数值5拼接,第二个又与10拼接,因此结果The sum of 5 and 10 is 510

    var message="The sum of 5 and 10 is"+(num1+num2);
    alert(message);//此时The sum of 5 and 10 is 15

    //js中逻辑运算

    都遵循的规则

    逻辑与操作符&&

    1如果第一个操作符是对象,则返回第二个操作数;

    2如果第二个操作数是对象,则只有在第一个操作数求值结果为true的情况下才能返回该对象;

    3如果两个操作数都是对象,则返回第二个操作数;

    4_&&null   -null

    5_&&NaN -NaN

    6_&&undefined -undefined

    属于短路操作,即如果第一个操作数能够决定结果,那么就不会对第二个操作数求值

    var found=true;
    var result=(found&&s);//这里会发生错误
    alert(result);//这里不会执行


    var found=false;
    var result=(found&&s);//不会发生错误
    alert(result);//会执行(“false”)

    因此逻辑与操作中不能用未定义的值(s未定义),使用之后就会发生错误。

    逻辑或操作符||

    1如果第一个操作符是对象,则返回第一个操作数;

    2如果第一个操作数求值结果为false,则返回第二个操作数

    3如果两个操作数都是对象,则返回第一个操作数;

    4null||null   -null

    5NaN||NaN -NaN

    6undefined||undefined -undefined

    返回的是最早能判断表达式结果的那个值
    var a=false;
    var b=6;
    var c=true;
    var d=(a||b||c);
    console.log(d);//6

    在源码中经常用window.hello=window.hello||window.world;哪一个为真就把哪一个值赋给window.hello

  • 相关阅读:
    二进制、八进制、十进制、十六进制的转换
    loadrunner-检查点
    loadrunner-集合点
    loadrunner-事务
    软件测试分类总结
    《黑客与画家》读后感
    说两个我在工作中有价值的bug
    HTTP状态码
    Android开发学习——android与服务器端数据交互
    Android开发学习——Volley框架
  • 原文地址:https://www.cnblogs.com/autismtune/p/5159507.html
Copyright © 2020-2023  润新知