我想知道 JavaScript 中对象中的值未定义时的区别
I want to know the difference if the value in an object in JavaScript is undefined
变量'bar'全部未定义。但是obj.bar
和obj2.bar
有区别吗?
const obj = { foo: "foo" };
console.log(obj); // { foo: 'foo' }
console.log(obj.bar); // undefined
const obj2 = { foo: "foo", bar: undefined };
console.log(obj2); // { foo: 'foo', bar: undefined }
console.log(obj2.bar); // undefined
在第一种情况下,bar
没有声明。但在第二种情况下,bar
被声明并定义为 undefined
.
比较麻烦,找方法是,如果用Object.keys(obj)
,就找不到bar
.
此外,使用 obj.hasOwnProperty('bar')
会给你错误。感谢deceze♦ for 出来。
const obj = { foo: "foo" };
// console.log(obj); // { foo: 'foo' }
// console.log(obj.bar); // undefined
const obj2 = { foo: "foo", bar: undefined };
// console.log(obj2); // { foo: 'foo', bar: undefined }
// console.log(obj2.bar); // undefined
console.log(Object.keys(obj));
console.log(Object.keys(obj2));
console.log(obj.hasOwnProperty('bar'));
console.log(obj2.hasOwnProperty('bar'));
变量'bar'全部未定义。但是obj.bar
和obj2.bar
有区别吗?
const obj = { foo: "foo" };
console.log(obj); // { foo: 'foo' }
console.log(obj.bar); // undefined
const obj2 = { foo: "foo", bar: undefined };
console.log(obj2); // { foo: 'foo', bar: undefined }
console.log(obj2.bar); // undefined
在第一种情况下,bar
没有声明。但在第二种情况下,bar
被声明并定义为 undefined
.
比较麻烦,找方法是,如果用Object.keys(obj)
,就找不到bar
.
此外,使用 obj.hasOwnProperty('bar')
会给你错误。感谢deceze♦ for
const obj = { foo: "foo" };
// console.log(obj); // { foo: 'foo' }
// console.log(obj.bar); // undefined
const obj2 = { foo: "foo", bar: undefined };
// console.log(obj2); // { foo: 'foo', bar: undefined }
// console.log(obj2.bar); // undefined
console.log(Object.keys(obj));
console.log(Object.keys(obj2));
console.log(obj.hasOwnProperty('bar'));
console.log(obj2.hasOwnProperty('bar'));