Javascript 无法读取属性';变量';未定义的
我正在导航一个包含对象数组的对象 当我使用chrome的js开发者控制台时,我可以从数组中的第一项获取title属性,即Javascript 无法读取属性';变量';未定义的,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我正在导航一个包含对象数组的对象 当我使用chrome的js开发者控制台时,我可以从数组中的第一项获取title属性,即 hello.example.array[0].title 这将返回标题(仅在js开发人员控制台中)。然而,当我为自己编写脚本时,我突然收到这样的回应: Cannot read property 'array' of undefined 下面是我的js的一个例子 var theTitle = hello.example.array[0].title; console.log
hello.example.array[0].title
这将返回标题(仅在js开发人员控制台中)。然而,当我为自己编写脚本时,我突然收到这样的回应:
Cannot read property 'array' of undefined
下面是我的js的一个例子
var theTitle = hello.example.array[0].title;
console.log(theTitle);
为什么当my js不正确时,控制台会正确地找到它?尝试在脚本视图中选择有问题的表达式,然后使用
Ctrl-Shift-E
快捷方式在控制台中进行计算。或者,从脚本视图复制并粘贴到控制台中。或者,将鼠标悬停在脚本视图中表达式的最后一个组件上以查看值。在任何一种情况下,您都很可能会发现您输入了错误的内容,或者在不同的上下文中执行脚本,而不是在控制台中计算表达式,等等。多亏了@Barmar,我意识到我需要查看如何获取“title”属性
我的解决方案是在其他代码的上下文中,以及对象最初是如何创建的
谢谢大家的帮助
6年后编辑: 这篇文章很受欢迎,所以我想我会用一个更有效的答案来更新它
因此,请检查您是否具有正确的作用域/上下文,并且代码在设置变量之前没有尝试访问该变量。是否可以创建一个fiddle,以便更容易地提供帮助。您可能正在进行asyn调用,这意味着您的数组尚未准备就绪。猜一猜。
hello.example
显然没有定义。我想您在设置hello.example.array[0].title
之前试图访问它,当您使用控制台访问它时,您的所有JS都已执行,因此设置了变量。但是,如果没有看到更多的代码,就无法确定这一点。不,最好尽早在全局范围内:在$(文档)之外。准备好了全局范围的,并在脚本顶部@哈沙