本篇文章这个知识点,可能你不会用到,但是在学习源码的过程中会遇到,可以了解一下,你会觉得很神奇。
很多面试题会问怎么判断一个变量的类型,常用的且准确的方法之一是使用Object.prototype.toString.call()
使用 toString() 检测对象类型
可以通过
toString()
来获取每个对象的类型。为了每个对象都能通过Object.prototype.toString()
来检测,需要以Function.prototype.call()
或者Function.prototype.apply()
的形式来调用,传递要检查的对象作为第一个参数,称为thisArg
。
简言之,给对象增加Symbol.toStringTag属性,就可以自定义类型!并且通过Object.prototype.toString.call()获取出来。
注意如果不加.call得到的值依旧是[object Object],所以以后在判断变量类型的时候要加上.call