說我有對象testObject = {a: undefined}
。如果我然後console.log(testObject.a)
,我得到undefined。但是,如果我不存在,也會發生同樣的情況。 JavaScript中有什麼方法可以區分a
和b
嗎?我主要是出於好奇而問,我沒有用例。有什麼辦法可以區分未設置的屬性和設置爲未定義的屬性?
1
A
回答
3
hasOwnProperty()
方法返回一個布爾值,指示對象是否有指定的屬性爲自己(不繼承)屬性檢驗之前實際區別。
在特定情況下 -
testObject = {a: undefined};
testObject.hasOwnProperty('a') //true
testObject.hasOwnProperty('b') //false
+0
只是一個指針。你應該試着解釋你爲什麼會做出改變。只是說'嘗試這個',不是一個好的答案 – Rajesh
3
可以有額外的條件使用in
操作
if(a in testObject) {
//yes .. now check whether it is undefined or not
}
+0
'in'也將通過原型上的屬性,並將失敗的非枚舉屬性 – Rajesh
2
testObject.hasOwnProperty('a')
注意,像你展示這隻會爲對象的工作;從原型繼承的屬性將不會通過此測試(這是hasOwnProperty
的要點)。
相關問題
- 1. 設置屬性未定義的方法
- 2. 無法設置屬性未定義
- 3. 可以爲尚未定義的屬性取消設置var嗎?
- 4. 未設置屬性的屬性?
- 5. JavaScript未捕獲TypeError:無法設置未定義的屬性'-1'
- 6. 未捕獲TypeError:無法設置未定義的屬性'背景'
- 7. 未捕獲TypeError:無法設置未定義的屬性值'
- 8. 無法設置未定義的webpack.js屬性「固定」
- 9. 有什麼辦法來設置一些/所有「子」 - 項目的屬性/屬性?
- 10. 未捕獲TypeError不能設置未定義的屬性'top'
- 11. Dexie - 類型錯誤:未定義(...)無法設置屬性「的onerror」
- 12. index.html:507 Uncaught TypeError:無法設置未定義的屬性'onsubmit'(...)
- 13. Uncaught TypeError:無法設置未定義的屬性'todoText'
- 14. 無法設置未定義Extjs4的屬性'視圖'
- 15. 無法設置未定義的屬性'$ render'
- 16. Uncaught TypeError:無法設置屬性'nTf'的未定義
- 17. Angularjs控制器:無法設置未定義的屬性「查詢」
- 18. Uncaught TypeError:無法設置未定義的屬性'nodeId'
- 19. 無法在core.js文件中設置未定義的屬性'值'
- 20. 「js Uncaught TypeError:無法設置未定義的屬性'zIndex'
- 21. JSON對象TypeError:無法設置未定義的屬性'0'
- 22. 無法在TypeScript中設置未定義的屬性XXX
- 23. TileContainer無法設置未定義SAPUI5的屬性'className'版本1.48
- 24. ckeditor.js:219 Uncaught TypeError:無法設置未定義的屬性'dir'
- 25. Laravel Echo無法設置未定義的屬性'X-Socket-ID'
- 26. TypeError:無法設置未定義的屬性'0'
- 27. Javascript | Uncaught TypeError:無法設置未定義的屬性「顏色」
- 28. TypeError:無法設置未定義的屬性'backgroundColor'
- 29. 無法設置未定義的屬性'employeeNum'
- 30. 無法設置未定義角度ng-repeat的屬性'key'
剛剛找到一個可能的答案 - 使用'Object.keys(testObject)'。 – Aerovistae
我認爲你正在尋找'undefined'和'null' – JustARandomProgrammer
不,我不是。我不知道會給你什麼印象。我對JavaScript並不陌生。 – Aerovistae