JavaScript对象表达式表示法无法正常工作
我是JavaScript新手。格式是在网上给出的,我试过但给出了未定义的结果。JavaScript对象表达式表示法无法正常工作
var name = {
a : 'a',
b:'b',c:'c'
};
console.log(name.a);// undefined
console.log(name);// '[object object]'
输出未定义?为什么
您与window.name有冲突。如果在全局上下文中使用name
,则该值将被字符串化。解决方案是只在函数上下文中使用可变全局范围之外,而不是,或任何地方:
var f = function(){
var name = {
a : "a",
b : "b",
c : "c"
};
console.log(name.a);
console.log(name);
}
f();
OP可能需要更多的解释,因为他们是新手到javascript – charlietfl
是的,它花了我一分钟,自己找到一些信息:)最好的一种问题 - 我不知道这是一个问题,直到我看到问题,所以我学到了也是。 –
name
是在javascript中
reserved
predefined word
引用:
您最好避免将以下标识符作为JavaScript 变量的名称。这些预定义的名字依赖于实现 JavaScript对象,方法或属性(和,可以说,一些应该 一直保留字):
这不是保留字。这只是浏览器中的一个先前存在的全局变量。 –
@FelixKling更新 –
我查了铬,Firefox和JsBin也输出.. –
不可能.....请显示那个jsbin。 –
https://jsbin.com/xereluw/edit?js,console,output –