js typeof 的深入了解

我们都知道,typeof的作用是辨别传入值的类型;

   我们需要注意的是:  (typeof的返回值统一都是 全小写的字符串)

  下面列举了typeof函数可以识别的类型以及场景:话不多说,直接进入:

  

  "undefined", //

     1、未定义对象将会被识别为underfined

          2、一个函数没有返回值

  “boolean” //false  or true

        

  "number"  //

    NaNInfinity和的方法会被识别为number

  "string"  //

    切记,函数有返回值,typeof一个函数等于typeof它的返回值

    只要识别的值是字符串 name它就会得到string

  "symbol" //识别es6的symbol类型  是es6带来新的原始数据类型

  “function”  //

  es6 class C{} 会被解析为function  

       Math.sin也会被解析为function

   还有其他所有函数

  "object"  //

    对象 数组 日期都会被识别为object

    包装类型对象(new Boolean(true)  new Number(1) new String('abc'))也会被解析object

    正则也会被解析为 'object'(在chrome1~12是 function)

    null 也是;

 

   小知识:typeof document.all === 'undefined'

      js typeof 的深入了解

  以上是Math的属性, 值为一个数字 所以 typeof会返回"number" 其余的对象方法都为"function"

  补充:Number.MIN_SAFE_INTEGER

    Number.MIN_VALUE

    的类型也是"number";
  

                       

但是 typeof的使用也是有限制的,譬如它并不能辨别出数组类型(Array)的值,如果我们传入的是一个数组,那他将返回"object";

具体解决看:https://i.cnblogs.com/EditPosts.aspx?opt=1