为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

5 回答

可以看看这篇文章: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    

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

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

1 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

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

0 回复 有任何疑惑可以回复我~

var a = 0 || 1;

结果 a = 1;

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信