偶然的你
2022-12-22 13:13:38
變量 '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
提交
取消