问答详情
源自:9-18 浏览器窗口可视区域大小

逻辑运算符 || 的运算结果,为什么不是布尔值,而是数值呢?

逻辑运算符 || 的运算结果,为什么不是布尔值,而是数值呢?

提问者:hen_nam 2017-03-18 20:37

个回答

  • 吉夫
    2017-07-17 01:57:38

    可以看看这篇文章:http://www.tashan10.com/javascript-de-ling-huo-yun-yong/

    摘要:

    数据类型               转换为bool后的值(对应的true或false)    

    null                       FALSE    

    undefined            FALSE    

    Object                  TRUE    

    function               TRUE    

    0                          FALSE    

    1                          TRUE    

    0、1之外的数字    TRUE    

    字符串                  TRUE    

    ""(空字符串)         FALSE    

    如果&&左侧表达式的值为真值,则返回右侧表达式的值;否则(如果左侧表达式的值为假),则返回左侧表达式的值。

    如果||左侧表达式的值为真值,则返回左侧表达式的值;否则(如果左侧表达式的值为假),则返回右侧表达式的值。

  • qq_有梦想的咸鱼乙_03197928
    2017-04-28 00:27:20

    可以这样理解,js逻辑或与运算返回值为判断逻辑返回第一个值或第二值,而由于两个波尔类型逻辑或与运算返回的一定是布尔类型,故造成这样的误解。其底层原理应该是判断逻辑返回第一个值或第二个值而不是通常我们理解的true or false

  • qq_有梦想的咸鱼乙_03197928
    2017-04-28 00:19:06

    http://blog.csdn.net/kevinhjing/article/details/48206787

    作者说的有点含糊,大概意思是逻辑或与运算等式两边为布尔类型则返回布尔类型,为其他数据类型返回其他数据类型。两个都有根据逻辑返回对应的。。

  • qq_有梦想的咸鱼乙_03197928
    2017-04-28 00:09:45

    var a = 0 || 1;

    结果 a = 1;

  • 最小化__3792420
    2017-03-19 21:30:36

    目前只见过true or false  ;可以把你的代码贴出来看看