大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心!
前几天接手了一个项目,发现有一个 Lodash 的方法在项目里用的非常多!那就是 isObject 这个方法!
我一看到这个方法我就害怕,马上去找了之前开发这个项目的前端,以下是跟他的对话:
我去翻了翻组内其他项目的代码,发现只要是判断普通对象的类型的,都用的是 isObject !!!!!!
我们在学习 JavaScript 基础的时候会听到这么一句话万物皆对象,其实这不是没有道理的,看过原型链图的会比较理解这句话。
图片
说回来 isObject,我为什么看到这个方法我就心慌呢?因为以前踩过坑,很多人一直认为isObject是用来判断对象类型的,其实他们认为的也没错,但是他们可能没好好看 Lodash 的文档。
图片
文档写着:检查 value 是否为 Object 的language type。(例如: arrays, functions, objects, regexes,new Number(0), 以及 new String(''))。
图片
现在知道问题出在哪了吧?大部分人都认为:判断普通对象可以使用 isObject 来判断。
但其实这么认为是不对的,因为isObject检测后返回 true 的类型,可不止普通对象哦!
如果你想要判断一个值是否为普通对象,可以使用 isPlanObject。
图片
这样才能达到我们想要的目的。
本文链接:http://www.28at.com/showinfo-26-96996-0.html千万不要再用错了这个 Lodash 方法了!可能酿成大祸!
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com