Javascript TRUE和;“真的”;为什么有人使用字符串而不是布尔值?

Javascript TRUE和;“真的”;为什么有人使用字符串而不是布尔值?,javascript,string,boolean,Javascript,String,Boolean,我在一些javascript代码中看到人们编写了如下内容: var myVar = "true"; //... if(myVar == "true") { //... }else{ //... } 为什么人们不使用真或假?据我所知,布尔类型对于浏览器来说是显而易见的 或者只是一个糟糕的代码。。。千万不要这样写。这只是糟糕的代码。尽量不要这样写 这种代码对于可维护性来说太可怕了。==(而不是==)和true都是字符串 另外,“true”==true//false。对于==

我在一些javascript代码中看到人们编写了如下内容:

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中这样做。在这种情况下,您应该使用严格的等式来向任何阅读代码的人说明。