在jQuery的核心风格指南建议两种不同的方法来检查一个变量是否被定义。
typeof variable === "undefined"
variable === undefined
object.prop === undefined
为什么jQuery为什么对全局变量使用一种方法而对局部变量和属性使用另一种方法?
对于未声明的变量,typeof foo将返回字符串文字"undefined",而身份检查foo === undefined将触发错误 “未定义foo” 。
typeof foo
"undefined"
foo === undefined
对于局部变量(您 知道 已在某处声明),不会发生此类错误,因此进行身份检查。