如何精准判断数据类型
typeof 实现原理
typeof
一般被用于判断一个变量的类型,我们可以利用 typeof
来判断number, string, object, boolean, function, undefined, symbol
这七种类型,但是,很遗憾的一点是,typeof
在判断一个 object
的数据的时候只能告诉我们这个数据是 object, 而不能细致的具体到是哪一种 object
Object.prototype.toString
还有一个不错的判断类型的方法,就是Object.prototype.toString,我们可以利用这个方法来对一个变量的类型来进行比较准确的判断。
Object.prototype.toString.call(1) // "[object Number]"
Object.prototype.toString.call('hi') // "[object String]"
Object.prototype.toString.call({a:'hi'}) // "[object Object]"
Object.prototype.toString.call([1,'a']) // "[object Array]"
Object.prototype.toString.call(true) // "[object Boolean]"
Object.prototype.toString.call(() => {}) // "[object Function]"
Object.prototyp