if dictionary.has_key('school'):
你会如何用javascript写这个?
答案 0 :(得分:20)
if(Object.prototype.hasOwnProperty.call(dictionary, key)) {
// ...
您也可以使用the in
operator,但有时会产生不良结果:
console.log('watch' in dictionary); // always true
答案 1 :(得分:9)
使用in
运算符:
if('school' in dictionary) { …
或者可能支持更多的弓箭手:hasOwnProperty
if(dictionary.hasOwnProperty('school')) { …
在边境案件中可能会出现问题:typeof
if(typeof dictionary.school != 'undefined') { …
一个人不能使用!= undefined
因为未定义不是关键字,并且它的语义因浏览器而异:
if(dictionary.school != undefined) { …
答案 2 :(得分:5)
'in'运算符。
if ('school' in dictionary)
答案 3 :(得分:5)
您也可以尝试:
if(dictionary.hasOwnProperty('school'))
如果属性实际位于实例上,hasOwnProperty
方法将仅评估为true
,而不是简单地从原型继承 - 与in
的情况一样。
例如,重新评估('toString' in myObject)
将为true
,而myObject.hasOwnProperty('toString')
将为false
。
答案 4 :(得分:0)
甚至,
if(dictionary.school!=undefined)