您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

等同于JavaScript isset()

等同于JavaScript isset()

我通常使用typeof运算符:

if (typeof obj.foo !== 'undefined') {
  // your code here
}

"undefined"如果该属性不存在或其值是,它将返回undefined

if (obj.hasOwnProperty('foo')) {
  // your code here
}

in运算符:

if ('foo' in obj) {
  // your code here
}

后两者之间的区别在于,该hasOwnProperty方法将检查属性是否 物理 存在于对象上(该属性未继承)。

in运营商将检查所有属性在原型链,如到达了:

var obj = { foo: 'bar'};

obj.hasOwnProperty('foo'); // true
obj.hasOwnProperty('toString'); // false
'toString' in obj; // true

如您所见,在检查方法时会hasOwnProperty返回false,而in操作员会返回,该方法在原型链中定义,因为它继承了form。true``toString``obj``Object.prototype

javascript 2022/1/1 18:15:29 有547人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶