1

许多初学者程序员写了类似if (myBoolean == true)的东西,if (myBoolean)因为他们还没有理解条件不需要包含比较,只是一个布尔值。当我在 twitter 上注意到这一点时,有人建议我在 JavaScript 中可能有充分的理由这样做。有没有?我们都知道 JavaScript 类型很奇怪,但谷歌在这一点上没有给出任何答案。

更新:似乎没有区别,但是if (myBoolean === true). 因此,为了澄清这个问题 - 如果 (myBoolean === true) 或 if (myBoolean),JavaScript 的最佳实践是什么。在什么实际情况下,您会检查=== true您不知道是布尔值的东西?请在此后续问题中回答:为什么在 JavaScript 中使用 if (myBoolean === true) 是一种好习惯?

4

2 回答 2

7

不。

由于您使用的是非严格相等运算符,因此以下之间绝对没有区别:

if (myBoolean == true)

和:

if (myBoolean)

===但是,如果您使用严格相等运算符并且myBoolean实际上不是布尔值,则会有所不同。

于 2012-11-06T11:36:53.240 回答
2

如果要检查的是真正的布尔值(真/假),而不仅仅是具有真实性质的东西,那么您永远不应该浪费时间其与真假进行比较。

您的变量应该以布尔方式命名,例如isFinished可以hasMoreRecords读取语句:

if (!finished) ...
if (moreRecordsLeft) ...
if (userHasLostTheirSanity) ...

等等。

将布尔值与真/假进行比较的问题在于它只会生成另一个布尔值,并且没有明确的停止位置:

if (!((userIsMad == true) == true) = false) ...
于 2012-11-06T11:44:16.403 回答