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

时间:2012-07-10 12:11:17

标签: javascript string boolean

我在一些javascript代码中看到人们写的是这样的:

var myVar = "true";

//...

if(myVar == "true") {
     //...
}else{
     //...
}

为什么人们不使用TRUE或FALSE?据我所知,布尔类型对于浏览器来说是显而易见的。

或者只是一个糟糕的代码......并且尽量不要这样写。

3 个答案:

答案 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样式,旨在防止在您错误地写=而不是==时不必要地分配变量。