# 筆記_Javascript基礎攻略 屬性檢查 --- ###### tags: `javascript` 當有個物件需要檢查這個物件的屬性時 可以直接 ```javascript= console.log(obj.name); console.log(obj['name']); ``` 但這還是有風險 如果屬性值剛好是undefined 就無法判斷了! ```javascript= let obj = { class: undefined, } console.log(obj.class); // undefined ``` 所以改成使用 `in` / `hasOwnProperty()` ```javascript= let obj = { name:'Alex', } console.log('name' in obj); // true console.log('age' in obj); // false console.log(obj.hasOwnProperty('name')); // true console.log(obj.hasOwnProperty('age')); // false ``` 雖然兩者都可以檢查物件的屬性是否存在,但 hasOwnProperty() 方法不會往上檢查**物件的原型鏈 (prototype chain)** 只會檢查物件本身是否存在這個屬性,而 in 運算子則會繼續往物件原型鏈上檢查: ```javascript= obj.hasOwnProperty('hasOwnProperty'); // false 'hasOwnProperty' in obj; // true ```