首页 > 编程语言 >JavaScript:操作符:逻辑运算符及其隐式转换

JavaScript:操作符:逻辑运算符及其隐式转换

时间:2022-12-09 02:11:07浏览次数:39  
标签:逻辑 false 结果 JavaScript 运算符 转换 true 隐式

逻辑非!

  • 用来对布尔值进行取反,即!true = false

  • 当取反的变量不是布尔值,会进行隐式转换为布尔值:

    • 非0的数字,都转换为true
    • 非空字符串,转换为true
    • 非空对象,转换为true
    • Infinity = true
    • 0,转换为false
    • 空字符串,转换为false
    • NaN = false
    • null = false
    • undefined = false
  • 可以接连两次取反,即两个感叹号!!;

逻辑与&&和逻辑或||

  • 同数学意义上的与和或的概念一样;

  • 逻辑与的优先级比逻辑或高;

  • 短路运算,即运算符两端的两个逻辑表达式,当第一个逻辑表达式不符合条件时,就会得出结果,不会再去计算第二个逻辑表达式;

  • 当逻辑表达式不是布尔值的结果时,会进行隐式转换为布尔值,但是最后运算结果,返回的不是布尔值,而是进行隐式转换之前的原结果;

    image-20221207201631673

    上图可以很好的理解短路运算与隐式转换,来说明一下为什么是这样的输出结果:

    上面逻辑运算符左右两边的两个逻辑表达式均为数字,非0的数字转为true,0转为false;

    • 对于第一行代码,转换为true && true,左边为true不能确定逻辑与运算结果,得再去计算右边的,右边也为true,此时确定结果,并且最后计算停留在右侧,所以输出结果为右侧的原结果,即2;

    • 对于第二行代码,转换为false && true,左边为false可以直接确定逻辑与运算结果,此时计算停留在左侧,所以输出结果为左侧的原结果,即0;

    • 对于第三行代码,转换为true || false,左边为true可以直接确定逻辑或运算结果,此时计算停留在左侧,所以输出结果为左侧的原结果,即1;

    • 对于第四行代码,转换为false || true,左边为false不能直接确定逻辑或运算结果,得再去计算右边的,右边为true,此时确定结果,并且最后计算停留在右侧,所以输出结果为右侧的原结果,即1;

标签:逻辑,false,结果,JavaScript,运算符,转换,true,隐式
From: https://www.cnblogs.com/Journing/p/16967890.html

相关文章