typeof
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typeof相关的知识,希望对你有一定的参考价值。
typeof 可能返回的值
javascript中数据一共有6种数据类型,他们分别为number、undefined、null、string、boolen、object,在es6中新增一种symbol。
typeof(number) 返回的是‘number‘ 字符串,这里的包括NaN,Infinity。
typeof(undefined) 返回的是‘undefined‘字符串。
typeof(null) 返回的是‘object‘字符串,null是一种特殊的对象。
typeof(string) 返回的是‘string‘字符串。
typeof(boolen) 返回的是‘boolen‘字符串。
typeof(object) 当对象为数组和普通对象是返回‘object‘字符串,当对象为function时返回‘function‘字符串。
typeof(symbol) 返回的是‘symbol‘字符串。
所以综上所述,除了null、普通object对象和数组无法用typeof区分,其他都可以用typeof来准确的判断他们的类型。
那怎么区分他们呢?
Object.prototype.toString.call(1);//‘[object Number]‘
Object.prototype.toString.call(‘1‘);//‘[object String]‘
Object.prototype.toString.call(undefined);//‘[object Undefined]‘
Object.prototype.toString.call({});//‘[object Object]‘
Object.prototype.toString.call([]);//‘[object Array]‘
Object.prototype.toString.call(true);//‘[object Boolen]‘
Object.prototype.toString.call(function () {});//‘[object Function]‘
Object.prototype.toString.call(Symbol());//‘[object Symbol]‘
值得注意的是 使用Object.prototype.toString.call传入 Object、Array、Function、Boolen、Symbol、Number等返回的都是‘[object Function]‘,因为他们自身就是方法。
以上是关于typeof的主要内容,如果未能解决你的问题,请参考以下文章