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