变量 '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
1 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
在第一种情况下,bar没有声明。但在第二种情况下, thebar被声明并定义为undefined。
相当棘手,找到它的方法是,如果你使用Object.keys(obj),你找不到bar。
此外,使用obj.hasOwnProperty('bar')会给你错误。感谢deceze ♦指出了这一点。
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'));
添加回答
举报
0/150
提交
取消