我检查了 javascript 中未定义/未声明变量的不同行为。例如:
var obj = {};
console.log(x);//Error
console.debug(obj.x) ;//undefined
我的问题是,虽然 c 和 obj.x 都没有声明或定义,但为什么我会出现差异行为? 我错过了什么吗? 我应该如何跟踪哪个变量已经存在或不存在?
最佳答案
你不能引用一个未声明的变量而不是一个错误,除非你在非严格模式下分配它然后它变成一个隐式全局变量。不过在严格模式下仍然出错。
尝试访问对象属性与尝试访问变量不同,尽管您可以从 window
访问全局变量:
x; //referenceerror
window.x; //undefined, no reference error
在这种情况下,您需要使用
window.x
与 x
例如:
var x = 5;
(function(){
var x = 3;
x === 3; //We cannot access the 5
window.x === 5 //Only window.x will do it here
})()
关于javascript - javascript变量的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11574039/