我知道空字符串在 javascript 中是虚假的,而非空字符串在 javascript 中是真实的。
但是,为什么'false'
在 javascript 中是真的,规范中有什么明确的吗?是性能问题还是存在您希望字符串'false'
表示的情况true
?
我知道空字符串在 javascript 中是虚假的,而非空字符串在 javascript 中是真实的。
但是,为什么'false'
在 javascript 中是真的,规范中有什么明确的吗?是性能问题还是存在您希望字符串'false'
表示的情况true
?
回答你问题的最后一部分:
是否存在您希望字符串“假”表示真的情况?
让我们考虑一下我正在测试用户输入中的空字符串。为此,我发出:
if (!theInput) {
// Do something.
}
false
现在,如果用户在文本框中输入,我是否希望该条件为真?当然,我不知道。
非空字符串的值始终为真。
Boolean(false)
返回假
Boolean('false')
返回真
这是根据定义。它是一个字符串,它是这样处理的。不管字符串的含义。
如果你的逻辑会被应用。那么下面的例子呢:
"1+3==2"
"humans have four eyes"
它们也是假的吗?
如果考虑布尔值,则 false 为 false,true 为 true。
Boolean(true) //returns true
Boolean(false) //returns false
但是,当您谈论诸如“真”和“假”之类的字符串或任何其他非空字符串时,Javascript 不会将它们读取为布尔值,并且它们将像所有其他非空字符串一样为真。
Boolean('true') //returns true
Boolean('false') //returns true
Boolean('blahblahblah') //returns true