我看到一些JavaScript代码中人们会写出如下的代码:
var myVar = "true";
//...
if(myVar == "true") {
//...
}else{
//...
}
为什么人们不使用TRUE或FALSE?就我所知,布尔类型对于浏览器来说是显而易见的。
还是因为代码质量差...尽量不要这样写。
我看到一些JavaScript代码中人们会写出如下的代码:
var myVar = "true";
//...
if(myVar == "true") {
//...
}else{
//...
}
为什么人们不使用TRUE或FALSE?就我所知,布尔类型对于浏览器来说是显而易见的。
还是因为代码质量差...尽量不要这样写。
这只是糟糕的代码,请尽量不要以这种方式编写。
这种代码对于可维护性来说非常可怕。既有使用 ==
(而不是 ===
),也有将 true
作为字符串的情况。
PS:此外,"true" == true // false
。对于使用 ===
的论点,这仅仅是因为 true == 1 // true
,还有很多其他看起来相似的东西。
除非你有某种原因需要得到包含true
的字符串,否则你不应该这样做:)。即使在这种情况下,使用严格相等运算符(===
)也是正确的选择。
在你所展示的代码示例中,这只是一种可怕的编码方式。
就像你所说的那样,这只是糟糕的代码。
“真正”的开发人员永远不会写if (condition == true)
,而只会写if (condition)
也可以写成if (true == condition)
。这被称为Yoda风格,旨在防止如果您错误地写入=
而不是==
时意外分配变量。
true
时提到===
是值得的 :)。 - kapa
true
和false
,但你的分析是正确的:最好使用实际的布尔值而不是字符串。 - Frédéric Hamidivar myVar = "false"; if (myVar) alert("O, hai!")
也会显示警告。 - Oleg V. Volkov