美文网首页
检测JS数据类型的四种方法

检测JS数据类型的四种方法

作者: 追马的时间种草 | 来源:发表于2019-08-20 22:36 被阅读0次

    上一篇:数组方法汇总


    数据类型分类:

    检测方法:

    • type of
      对基本数据类型(null除外)和es6的Symbol还有Function有效,其余都无效检测类型都是object
    typeof ''; // string 有效
    typeof 1; // number 有效
    typeof Symbol(); // symbol 有效
    typeof true; //boolean 有效
    typeof undefined; //undefined 有效
    typeof null; //object 无效
    typeof [] ; //object 无效
    typeof function(){}; // function 有效
    typeof new Date(); //object 无效
    typeof new RegExp(); //object 无效
    
    • instanceof :关于原理,建议先去了解一下原型及原型链

      用途:检测 A是否是B的实例
      用法:A instanceof B
      返回值: true || false

      //当 A 的 __proto__ 指向 B 的 prototype 时,就认为 A 就是 B 的实例
    [] instanceof Array; // true
    {} instanceof Object;// true
    new Date() instanceof Date;// true
     
    function Person(){};
    new Person() instanceof Person;
     
    [] instanceof Object; // true
    new Date() instanceof Object;// true
    new Person instanceof Object;// true
    
    • constructor
      用途:判断A作为构造函数是否遗传给了a,a的构造函数是否是A。
      用法: f.constructor == F
      返回值:true || false
      如图:
      constructor检测
    • Object.prototype.toString.call()可用于所有的数据类型检测
      缩写:toString.call()
    toString.call('') ;   // [object String]
    toString.call(1) ;    // [object Number]
    toString.call(true) ; // [object Boolean]
    toString.call(Symbol()); //[object Symbol]
    toString.call(undefined) ; // [object Undefined]
    toString.call(null) ; // [object Null]
    toString.call(new Function()) ; // [object Function]
    toString.call(new Date()) ; // [object Date]
    toString.call([]) ; // [object Array]
    toString.call(new RegExp()) ; // [object RegExp]
    toString.call(new Error()) ; // [object Error]
    toString.call(document) ; // [object HTMLDocument]
    toString.call(window) ; //[object global] window 是全局对象 global 的引用
    

    相关文章

      网友评论

          本文标题:检测JS数据类型的四种方法

          本文链接:https://www.haomeiwen.com/subject/dqmpsctx.html