我在一些javascript代码中看到人们写的是这样的:
var myVar = "true";
//...
if(myVar == "true") {
//...
}else{
//...
}
为什么人们不使用TRUE或FALSE?据我所知,布尔类型对于浏览器来说是显而易见的。
或者只是一个糟糕的代码......并且尽量不要这样写。
答案 0 :(得分:5)
这只是糟糕的代码。尽量不要这样写。
这种代码对可维护性来说太可怕了。 ==
(而不是===
)和true
都是字符串。
PS:此外,"true" == true // false
。对于===
参数,它只是因为true == 1 // true
,而其他很多看起来像这样的东西。
答案 1 :(得分:4)
你不应该这样做,除非你真的期望一个包含true
的字符串由于某种原因:)。但即使在这种情况下,使用strict equality(===
)也是正确的选择。
在您展示的代码示例中,这只是编写代码的一种可怕方式。
答案 2 :(得分:1)
正如你所说,这只是糟糕的代码。
“真正的”开发者永远不会写if (condition == true)
,而只会写if (condition)
也可以写成if (true == condition)
。这称为Yoda样式,旨在防止在您错误地写=
而不是==
时不必要地分配变量。