【发布时间】:2011-06-22 09:21:18
【问题描述】:
在 JavaScript 中,我想将(严格)相等的值与 false 进行比较。
从Java/C#我习惯写:
if (!value)
//Do Something
但是,我不能在 JavaScript 中使用它,因为 null、undefined(和其他恕我直言)在 if 语句中也可以评估为 false。 (我不想那样)。
因此,我一直在编写以下内容来制定这样的检查:
if (value === false)
//Do Something
然而,这个结构对我来说有点奇怪。
这里有没有更优雅的方法(当然会导致与=== false 相同的结果)?
当然,引入方法isFalse 是一种选择,但这不是我想要的,因为它看起来比=== false 更令人分心。
【问题讨论】:
-
遗憾的是,JavaScript 中的很多东西对于我们这些习惯于真实语言的人来说看起来很奇怪。 :)
-
可能坚持使用
=== false...或切换到false === ... -
if(!value)如果value在你提到的那些语言中不是一个真正的布尔值,那么if(!value)会打你一巴掌。如果您使用“0 = false,其他所有内容 = true”的位掩码会为您节省一些输入,这非常烦人。无论如何,很高兴您不需要a.equals(b),但可以使用a === b,而不是抱怨一个并不奇怪的完美构造;) -
对于可选参数,测试
=== false和=== true是有意义的,因为未设置的参数是undefined -
@winSharp93:你最好只测试
undefined,否则接受任何愚蠢的东西:if (arg === undefined || arg)。
标签: javascript coding-style comparison boolean