【发布时间】:2016-09-30 14:41:11
【问题描述】:
分配默认值是一种流行的模式:
var aBool = '' || false;
var aString = false || '';
以上将给aBool boolean 值false 和aString 一个空字符串的值,至少在Chrome 和FF 的控制台中。与此相反:
如果可以转换为true则返回expr1;否则,返回 expr2.因此,当与布尔值一起使用时,||如果有任何一个,则返回 true 操作数可以转换为真;如果两者都可以转换为假, 返回假。 来源:mozilla
这其实很方便,但是对吗?
【问题讨论】:
-
不,它不是而且实际上没有意义。随意编辑该页面(“因此...”部分应删除)。
-
"如果能转换成
true则返回expr1;否则返回expr2"是句子的重要部分 -
怎么了,对我来说似乎是正确的? 如果与布尔值一起使用,如果其中一个操作数为真,则返回真,如果两者都为假,则返回假?
-
“如果任一操作数都可以转换为true,则返回true”,但它不是true,它是false,所以应该返回'',如果你这样做了|| '',你会得到真实的。
-
再说一次,它出了什么问题?如果两个值都是布尔值,并且两个值都是
false,则返回false。空字符串不是布尔值?
标签: javascript google-chrome firefox boolean evaluation