首页 > 自考资讯 > 自考知识

酿成大祸,就是假千金也要勇敢摆烂

头条共创 2024-06-27

前几天接手一个项目,发现项目中有一个常用的Lodash方法。也就是isObject方法~

当我看到这个技术的时候,我很害怕,立即去找以前开发过这个项目的前端开发人员。以下是我和他的对话:

我:老大,你知道Lodash的isObject是做什么用的吗?他说:判断一个值是否是对象类型。我:数组和函数算对象吗?他说:应该。这应该不算吧?我:我查看了组中其他项目的代码,发现isObject 的使用范围是用于确定常规对象的类型。

万物皆对象

在学习JavaScript 基础知识时,您会听到“一切皆对象”这句话。事实上,如果您看过原型链图,您会更好地理解这句话。

c1ab3c694ef64a3ba4d0536f717416d4~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720082829&x-signature=h0YZXZWjKhIjAyQ6OHe353IVOKM%3D

说回 isObject

说到isObject,为什么我看到这个方法就慌了?我以前也遇到过这个问题,而且很多人总是认为isObject是用来判断我做的对象类型的。事实上,他们是正确的,但他们可能没有仔细阅读Lodash文档。

62e3d757ae2644c7a838b0b98256dd9f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720082829&x-signature=QuVhF%2Bi03tbDJlIXPfDIQIa4Ngw%3D

文档说“检查该值是否是对象的语言类型”。 (示例:数组、函数、对象、正则表达式、new Number(0)、new String(''))

5dd29352654145fb9a391808642d795f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720082829&x-signature=BDJfcxiFwu03Irwls3bGMLTXLaA%3D

现在,你明白问题出在哪里了吗?大多数人认为可以使用isObject 来确定常规对象。

但事实上,这样的想法是错误的。这是因为检测后返回true的isObject类型不仅仅是一个对象~

isPlanObject

如果要判断某个值是否是常规对象,可以使用isPlanObject。

5b7049f06c184458a26335597fdf6e1e~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720082829&x-signature=8If%2FXiOg5u8%2BZqAhWldXhX8VwPY%3D

只有这样才能达到我们想要的目的~

60ca3b440bb7424081cdad66a2b80b16~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720082829&x-signature=PBfIxdtrWdbPf9o%2B6FAannVxB%2FY%3D

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢