在Javascript中,myObject == null是一种处理undefined检查的有效方法吗?

Mat*_*att 3 javascript

在Javascript中,是myObject == null一种处理undefined和null检查的有效方法吗?

JSLint更喜欢我这样做 (myObject === undefined || myObject === null)

Doug Crockford会做什么?(WWDCD)

bfa*_*tto 5

是的,这是检查两者的好方法.语言规范声明(关于==比较不同类型的值):

2)如果x为null且y未定义,则返回true.

3)如果x未定义且y为null,则返回true.

这里xy是比较的术语x == y.当你进行比较时x == null,只有xundefinednull本身才会成真.


需要明确的是,当我们在这里说"未定义"时,我们指的是值undefined,而不是未定义的变量(除非使用它们,否则会产生ReferenceError typeof).


关于WWDCD,我会引用Ian:Crockford会建议(显然)JSLint的建议,因为==对他来说是伏都教.这意味着"使用===,永远不会==".所以这对他来说不是问题.