Javascript TRUE和;“真的”;为什么有人使用字符串而不是布尔值?
我在一些javascript代码中看到人们编写了如下内容:Javascript TRUE和;“真的”;为什么有人使用字符串而不是布尔值?,javascript,string,boolean,Javascript,String,Boolean,我在一些javascript代码中看到人们编写了如下内容: var myVar = "true"; //... if(myVar == "true") { //... }else{ //... } 为什么人们不使用真或假?据我所知,布尔类型对于浏览器来说是显而易见的 或者只是一个糟糕的代码。。。千万不要这样写。这只是糟糕的代码。尽量不要这样写 这种代码对于可维护性来说太可怕了。==(而不是==)和true都是字符串 另外,“true”==true//false。对于==
var myVar = "true";
//...
if(myVar == "true") {
//...
}else{
//...
}
为什么人们不使用真或假?据我所知,布尔类型对于浏览器来说是显而易见的
或者只是一个糟糕的代码。。。千万不要这样写。这只是糟糕的代码。尽量不要这样写 这种代码对于可维护性来说太可怕了。
==
(而不是==
)和true
都是字符串
另外,
“true”==true//false
。对于==
参数,原因很简单,因为true==1//true
,还有许多其他类似的东西看起来像这样。您不应该这样做,除非出于某种原因,您真的希望字符串包含true
)。但即使在这种情况下,使用(==
)也是正确的选择
在您展示的代码示例中,这只是一种糟糕的代码编写方式。正如您所说,这只是糟糕的代码 一个“真正的”开发人员从不写
if(condition==true)
,而只写if(condition)
如果(true==条件),也可以写入
。这被称为Yoda风格,旨在防止在错误地编写=
而不是=
时出现不必要的变量赋值。实际上,这是true
和false
(小写),但您的分析是正确的:最好使用实际布尔值而不是字符串。和var myVar=“false”;if(myVar)alert(“O,hai!”)
也会显示您的警报。如果您谈论的是“真正的”开发人员,那么在测试true
:)时提及=
是值得的。同意。在测试失败时,我特别在PHP中这样做。在这种情况下,您应该使用严格的等式来向任何阅读代码的人说明。