在 ES5 之前,全局的 undefined
也是可以被修改的,而在 ES5 中,该标识符被设计为了只读标识符, 假如你现在的浏览器不是太老,你可以在控制台中输入以下语句测试一下:
undefined = 1;
console.log(undefined); // => undefined
void 0 可受信任的undefied
!(function(a){ var undefined = 1; console.log(undefined); // 1 console.log(void 0) // undefined if(a === void 0){ // true console.log(true); } }());
也可以像jquery第二个参数(形参名叫undefined)
!(function(window, undefined){
})(window)