我正在尝试在对象文字中定义一个空变量,但出现错误“未捕获的ReferenceError:未定义”。有人可以在这里帮我吗?谢谢。
LVItemBox
答案 0 :(得分:3)
var obj = { a: null, b: 1 }
console.log(obj.a);
稍后,您可以将值分配给:
obj.a = 1;
编辑:您还可以将值设置为未定义,空字符串或任何其他类型:
var obj = {
a: null,
b: undefined,
c: '',
d: NaN
}
答案 1 :(得分:2)
FWIW,没有“空”变量之类的东西。即使您进行var a;
,也会a
被隐式地分配值undefined
。
根据您的用例(您没有提供太多信息),可能根本不必定义任何内容。
访问不存在的属性已经返回undefined
(可以视为“空”):
var obj = { b: 1 }
console.log(obj.a);
当然,如果您要for...in
包含{/ {1}}或Object.keys
或.hasOwnProperties
,则必须对其进行定义,如in the other answer所示;
仅供参考,a
不起作用,因为它等效于{ a, b: 1 }
,即您正在尝试将变量 {a: a, b: 1}
的值分配给属性 a
,但要使其正常工作,必须存在变量 a
。