如何在对象文字中定义空变量?

时间:2018-07-02 20:54:02

标签: javascript

我正在尝试在对象文字中定义一个空变量,但出现错误“未捕获的ReferenceError:未定义”。有人可以在这里帮我吗?谢谢。

LVItemBox

2 个答案:

答案 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