没有值的JavaScript对象属性不会显示

时间:2018-05-02 19:31:47

标签: javascript

我今天试了这个:

var x = new Object();
x.foo;
console.log(x);
console.log(x.length);

结果:

{}

undefined

为什么在创建对象的空属性时,该对象是否为空?

4 个答案:

答案 0 :(得分:2)

你并没有创造一个空洞的东西......你没有字面意思(除非我们考虑尝试访问不存在的房产)!

尝试:

x.foo = undefined;

答案 1 :(得分:1)

因为您没有创建foo属性;您已评估表达式x.foo,结果为undefined,因为属性foo不存在。这不会影响对象。

答案 2 :(得分:1)

您还没有创建属性,但您已尝试访问不存在的属性。如果您曾尝试为该属性分配值。该物业将被创建

var x = new Object();
x.foo = undefined;
console.log(x);
console.log(x.length);

会尊重地打印{foo: undefined}undefined

答案 3 :(得分:0)

看看这些,希望能帮到你

var x = new Object();

x.foo;

console.log('x: ', x);
console.log('x.length', x.length);

var y = new Object();

y['foo'] = '';


console.log('y', y);
console.log('keys:', Object.keys(y));
console.log('keys length:', Object.keys(y).length);