如何判断一个变量是不是对象?面试回答时千万别掉进坑里。

勾勾的前端世界

共 858字,需浏览 2分钟

 ·

2021-03-09 19:57

(。・∀・)ノ゙嗨,我是你稳定更新、最懂面试的勾勾。



在面试过程中,经常有面试官提问“JavaScript 中如何判断一个变量是不是对象?”,这道题考验得就是你的基本功是否扎实,这也是工作中难免会遇到的一个问题。


遇见这样的问题,估计有人马上会说 typeof,这样可就错了。


在 JS 中,我们都知道数据类型分两种:基本和引用类型。同时可以通过 typeof 变量名 的形式得到变量的数据类型。


比如:



这就导致我们没法区分 var a = null; var b = []; var c = {}; 这三个变量的类型是不是一样的。所以我们需要使用 Object.getPrototypeOf() 这个方法。


https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf 

详细内容参考这里。


Object.getPrototypeOf()

这个方法获取参数对象的原型,如果原型上没有继承的属性了,则结果是 null。


比如:



通过以上分析,我们就知道如果来区分是不是对象了。



上面代码的意思是,如果变量 obj 的原型和最终得到的对象原型一样,说明是对象,否则就不是对象。接下来我们测试一下。



到此,一个判断变量是不是对象的方法就完成了。


推荐阅读:

从理解 React 框架开始,开启金三银四面试之旅。

前端典型面试题:为什么 React 选择使用 JSX ?

尤雨溪 3 天 10 更的 Vite 究竟有什么魔力?

我对 Webpack 5 真香了。

腾讯QQ偷我浏览记录到底想干嘛。


点个“在看”和“”吧,

毕竟我是要成为前端网红的人。

浏览 86
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报