喜欢
function myFunction(){
var undefined = "abc";
}
如果可能那么如何限制不允许?
答案 0 :(得分:7)
有些浏览器允许它,限制它的最佳方法是避免它。
但是......有些人正在使用这种技术来保存未定义的:
(function(undefined){
})()
他们获得了一个名为undefined
的变量,但没有传递给undefined
undefined
值的值。
来自jQuery的源代码:
(function( window, undefined ) {
...
...
})(window);
答案 1 :(得分:7)
是否可以覆盖javascript中的undefined?
如果“未定义”是指全局undefined
变量,则为no。从EcmaScript 5开始,它是specified as non-writable。但是,旧版浏览器不遵守该规范,因此在旧版引擎中可以覆盖。你不能真正阻止它,但是always reset it by undefined = void 0;
。如果您仍然担心并想知道如何保护自己的脚本,请查看问题How dangerous is it in JavaScript, really, to assume undefined is not overwritten?。
喜欢
function myFunction(){ var undefined = "abc"; }
这是另一回事。您始终可以声明一个名为undefined
的局部变量(遮蔽全局变量)并为其指定任意值。
答案 2 :(得分:0)
是的,可以覆盖undefined。
这个问题有解决这个问题的好方法 - How to check for "undefined" in JavaScript?