我正在查看idiomatic.js并注意到类型检查部分中的以下行:
全局变量:
typeof variable === "undefined"
本地变量:
variable === undefined
此部分最初基于jQuery style guide
我被告知第一种形式更安全,因为undefined
可以重新定义为另一种价值。我也不知道第一种形式对局部变量不起作用的原因。
在fiddle中似乎工作得很好。任何人都可以解释为什么这种风格有意义吗?
var undefined = 2;
function test(){
var x;
alert("1: " + (typeof x == "undefined"));
alert("2: " + ( x === undefined));
}
test(); //alerts "1: true", then "2: false"