美文网首页
判断-1==true返回false

判断-1==true返回false

作者: cooqi | 来源:发表于2019-05-22 11:03 被阅读0次

    起因只是我随意想测试下&&,但是后来发现我一直没注意到的问题


    TIM截图20190522105435.jpg

    让我纠结的是,负数,我之前一直以为是负数是false,但是才发现,非0即true,负数转布尔是true

    1.JS对于逻辑与运算a&&b,如果a不成立(运算后结果是false,null,'',0,undefined等值,下同)则返回a,如果a成立则返回b,如果使用&&连接了多个表达式,如果每个表达式都成立,则返回最后一个表达式的运算结果,如果有至少一个不成立,则返第一个不成立的表达式的运算结果
    2.JS对于逻辑或运算a||b,则是从左边开始,返回第一个成立的表达式的运算结果,如果全部不成立则返回最后一个表达式的运算结果。
    3.&&优先级高于||,先运算&&再用&&运算的结果去||运算。

    好的,了解了,但是当我输入-1==true的时候,又返回了false,当时就蒙圈了,于是求助百度

    1.如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1;

    1. 如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;

    好了,知道了,因为有一个值是布尔值,一个是数字,先将布尔值转数字
    所以-1==true相当于-1==1;这样就明明白白了,当然是false
    也就是说数字和除了0和1,其余==判断都肯定都是false

    参考https://www.cnblogs.com/wl521/p/7423852.html
    https://www.51-n.com/t-4207-1-1.html

    相关文章

      网友评论

          本文标题:判断-1==true返回false

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