【问题标题】:javascript object expression notation is not working properly [duplicate]javascript对象表达式符号无法正常工作[重复]
【发布时间】:2018-04-01 22:22:18
【问题描述】:

我是 javascript 语言的新手。格式是在网上给出的,我试过了,但它给出了未定义的结果。

var name = {
  a : 'a',
  b:'b',c:'c'
};
console.log(name.a);// undefined
console.log(name);// '[object object]'

输出未定义?为什么

【问题讨论】:

标签: javascript object


【解决方案1】:

您与window.name 有冲突。如果您在全局上下文中使用name,则该值是字符串化的。解决方案是仅在函数上下文中或全局范围之外的任何地方使用变量:

var f = function(){
  var name = {
    a : "a",
    b : "b",
    c : "c"
  };
  console.log(name.a);
  console.log(name);
}

f();

【讨论】:

  • OP 可能需要更多解释,因为它们是 javascript 的新手
  • 是的,我自己花了一分钟才找到一些信息 :) 最好的问题 - 在我看到问题之前我不知道这是一个问题,所以我也学到了一些东西。跨度>
【解决方案2】:

name 是 javascript 中的 reserved predefined word

引用:

你最好避免以下标识符作为 JavaScript 的名称 变量。这些是依赖于实现的预定义名称 JavaScript 对象、方法或属性(可以说,有些应该 已保留字):

【讨论】:

  • 不是保留字。它只是浏览器中预先存在的全局变量。
  • @FelixKling 更新
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-15
  • 2016-05-04
  • 1970-01-01
相关资源
最近更新 更多