首页 > 代码库 > typeof
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