逻辑运算符 || 的运算结果,为什么不是布尔值,而是数值呢?
可以看看这篇文章: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
如果&&左侧表达式的值为真值,则返回右侧表达式的值;否则(如果左侧表达式的值为假),则返回左侧表达式的值。
如果||左侧表达式的值为真值,则返回左侧表达式的值;否则(如果左侧表达式的值为假),则返回右侧表达式的值。
可以这样理解,js逻辑或与运算返回值为判断逻辑返回第一个值或第二值,而由于两个波尔类型逻辑或与运算返回的一定是布尔类型,故造成这样的误解。其底层原理应该是判断逻辑返回第一个值或第二个值而不是通常我们理解的true or false
http://blog.csdn.net/kevinhjing/article/details/48206787
作者说的有点含糊,大概意思是逻辑或与运算等式两边为布尔类型则返回布尔类型,为其他数据类型返回其他数据类型。两个都有根据逻辑返回对应的。。
var a = 0 || 1;
结果 a = 1;
目前只见过true or false ;可以把你的代码贴出来看看