如何判断一个变量是不是对象?面试回答时千万别掉进坑里。
(。・∀・)ノ゙嗨,我是你稳定更新、最懂面试的勾勾。
在面试过程中,经常有面试官提问“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 的原型和最终得到的对象原型一样,说明是对象,否则就不是对象。接下来我们测试一下。
到此,一个判断变量是不是对象的方法就完成了。
推荐阅读:
点个“在看”和“赞”吧,
毕竟我是要成为前端网红的人。
评论