以下两个示例似乎都起作用。我只是想知道两者之间的区别是什么,它们又如何起作用?
if (a[b].hasOwnProperty(c)) {return "Works";}
if (a[b][c]) {return "Works";}
但是,由于某种原因,以下内容似乎会引起很多问题,尽管它似乎应该可以工作:
if (typeof(a[b][c]) !== undefined) {return "Works";}
我只是不明白到底怎么了。
非常感谢,我才刚开始,所以这很容易。
最佳答案
typeof x
永远不能是undefined
;它永远是一个字符串。该字符串可以是"undefined"
,但是不是undefined
。a[b].hasOwnProperty(c)
和a[b][c]
之间有区别:
如果值存在,但falsy one ( a[b][c]
, false
, false
, 0
, ""
, NaN
)是ojit_a,则
null
将为undefined
。 hasOwnProperty
仅查看对象本身内的属性,而不查看原型(prototype)链中的属性。 (但是,即使是伪造的值,它也会返回true
。)关于javascript - JavaScript中hasOwnProperty和if(a [b] [c])之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51812263/