[英]Check if javascript object/property is defined
所以我已經閱讀了一些SO帖子和一些博客,但仍然無法弄清楚為什么我的代碼不起作用。
我的代碼:
function myFunct(d) {
if (typeof d.parent.name == "undefined") {
console.log("undefined") ;} else { console.log("defined") ;}
}
d
是一個看起來像這樣的對象:
Object {
children: Object,
count: 676
}
我嘗試過使用(!d.parent.name)
, hasOwnProperty
, ===
,並使用typeof
。 有什么建議么?
我收到的錯誤是TypeError: d.parent.name is undefined
更新:
好的,感謝大家的投入,如果問題令人困惑,我道歉。 我實際上是在尋找d.parent.parent
但試圖通過使用d.parent
簡化問題。 我認為問題是d.parent
沒有定義所以它甚至沒有達到d.parent.parent
。 抱歉沒有更具體!
如果您希望在對象樹中一直進行未定義安全檢查,則可以使用:
if( typeof( ((d || {}).parent || {}).name ) === 'undefined') {
}
如果您有奢侈的Lodash可供您使用:
var d = {
parent: {
name: "Joe"
}
};
if ( typeof (_.get(d, "parent.name")) === 'undefined' ) {
}
嘗試使用邏輯OR
檢查所有孩子
if (typeof d == "undefined" ||
typeof d.parent == "undefined" ||
typeof d.parent.name == "undefined") {
// ...
}
if(typeof x === 'undefined')
使用它,它會檢查類型和值,這就是你需要的。
我相信錯誤是屬性標識符parent
。 你確定你的物品有財產嗎? 標識符d
可能無效,因為parent
不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.