javascript - javascript变量的不同行为

标签 javascript

我检查了 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.xx 例如:

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/

相关文章:

javascript - 最多 4 位数字和/或最多 4 位小数的正则表达式

javascript - SailsJs 中的错误。类型错误 : Cannot read property 'attributes' of undefined

javascript - 使用 lodash _.words 时如何不在破折号/连字符上分开?

javascript - 递归js函数简化列表结果

javascript - 使用 jquery find 在 Angular Directive(指令)中获取 dom 元素

java - 在网络应用程序中检测用户区域的可靠方法是什么?

javascript - 具有自定义调整大小事件的 Kendo UI 网格不会在 Internet Explorer 中显示详细信息模板

javascript - JsTree:显示更多选项

javascript - 在 iOS/Android 上的 HTML5 混合应用程序中持久存储的可靠方法

javascript - 无法使用 FabricJS 来增大和缩小对象