如何解决检查值是否为普通对象字面量
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 举报,一经查实,本站将立刻删除。