[英]What is the difference between truthy and falsy with true and false in JavaScript?
[英]Why is 'false' truthy in javascript?
我知道空字符串在 javascript 中是假的,非空字符串在 javascript 中是真的。
但是,为什么 javascript 中的'false'
真,规范中是否有任何明确的内容? 这是性能问题还是在某些情况下您希望字符串'false'
代表true
?
回复你问题的最后一部分:
是否存在您希望字符串 'false' 代表 true 的情况?
让我们考虑一下我正在测试用户输入中的空字符串。 为了实现这一点,我发出:
if (!theInput) {
// Do something.
}
现在,如果用户在文本框中输入false
,我是否希望该条件为真? 当然,我不知道。
非空字符串的值始终为真。
Boolean(false)
返回 false
Boolean('false')
返回 true
这是根据定义。 它是一个字符串,它是这样处理的。 不管字符串的含义。
如果您的逻辑将被应用。 那么下面的例子怎么样:
"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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.