在Javascript中,是myObject == null一种处理undefined和null检查的有效方法吗?
JSLint更喜欢我这样做 (myObject === undefined || myObject === null)
Doug Crockford会做什么?(WWDCD)
是的,这是检查两者的好方法.语言规范声明(关于==比较不同类型的值):
2)如果x为null且y未定义,则返回true.
3)如果x未定义且y为null,则返回true.
这里x和y是比较的术语x == y.当你进行比较时x == null,只有x是undefined或null本身才会成真.
需要明确的是,当我们在这里说"未定义"时,我们指的是值undefined,而不是未定义的变量(除非使用它们,否则会产生ReferenceError typeof).
关于WWDCD,我会引用Ian:Crockford会建议(显然)JSLint的建议,因为==对他来说是伏都教.这意味着"使用===,永远不会==".所以这对他来说不是问题.