首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在循环时访问javascript对象时出现的问题

在循环时访问javascript对象时出现的问题
EN

Stack Overflow用户
提问于 2018-08-20 15:16:57
回答 4查看 69关注 0票数 0

for..in循环中,

为什么作为o.i访问的属性的值返回undefined,而o[i]返回正确的值?

供参考的代码片段:

代码语言:javascript
复制
var object = {
   id:2,
   name:'axs',
   address:'colon street'
};

for(let property in object){
  console.log(object.property); // returns undefined
  console.log(object[property]); // returns property-value
}
EN

回答 4

Stack Overflow用户

发布于 2018-08-20 15:19:12

o.i将在Object中查找属性i,但当您执行o[i]时,它将查找已评估的属性i,该属性可能是:nameid等……

在使用dot表示法获取属性时,不会对变量求值,因此会认为您正在尝试获取属性i本身。

票数 4
EN

Stack Overflow用户

发布于 2018-08-20 15:47:53

它们是访问对象属性的不同方式。o.i等同于o'i',在你的例子中不存在,所以返回undefined。

票数 0
EN

Stack Overflow用户

发布于 2018-08-20 18:02:00

表达式object.property返回undefined,因为在object上找不到名为property的属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51925737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档