微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查值是否为普通对象字面量

如何解决检查值是否为普通对象字面量

已经有一个类似的问题,它的answer是:

typeof yourVariable === 'object' && yourVariable !== null

但是,这也将包括 document.body 之类的 HTML 元素。有没有办法检测一个值是否是一个普通对象?

编辑:“普通对象”是指“用户创建的”对象。例如,我不想匹配类实例或 DOM 元素。正如@VLAZ 在评论中建议的那样,只是用作散列的对象。

解决方法

我的猜测是还要检查值的构造函数是否为 Object。不过,这是否有任何潜在问题?

function check(value) {
  return typeof value === 'object' && value !== null && value.constructor === Object;
}

console.log(check({foo: 42}));
console.log(check(document.body));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。