我对声明变量undefined
和评估真值if-else表达式给出了一些想法。我发现在全球范围内这是不可能的。但在MDN中,我发现了关于undefined
数据类型的一些有趣的见解。我直接引用MDN未定义为本地范围内的有效变量名称
undefined是全局对象的一个属性;即它是全球范围内的变量 。
它没有说任何关于本地范围的内容。这意味着我可以在本地范围内创建一个。所以,我继续将这种见解进行测试。我创建了一个对象并为其指定一个方法
var person = {
method : function(){
var undefined = 2
if(undefined){
console.log("undefined works as a variable")
}
}
}
person.method()
然后猜猜看! if语句通过测试并将console.log()
中的字符串打印在控制台上。这可能是一件危险的事情,当然也是一种不好的做法。有什么办法来阻止在JavaScript的本地范围中声明一个以undefined
关键字命名的变量吗?谢谢!
的[VAR未定义= TRUE;]可能的复制(https://stackoverflow.com/questions/2534260/var-undefined-true) –
@ nem035将无法正常工作 –
*“有什么办法来防止在javascript的本地作用域中以'undefined'关键字命名的变量的声明?“*为什么你确切地问?你的最终目标是什么?你想阻止自己创建这样的变量吗?如果不是你自己,还有谁在“在本地范围内”编写代码? –