美文网首页JS
typeof 和 instanceof 检测数据类型

typeof 和 instanceof 检测数据类型

作者: 你好岁月神偷 | 来源:发表于2021-11-24 10:06 被阅读0次

    原始类型(基本类型):

        ES5( Undfined、Null、String、Boolean、Number ) 

        ES6( BigInt、symbol )

    引用类型(复杂类型):

        Object(Date、Array、Function、Object)

    typeof  检测时:

      基本数据类型检测:

         console.log(typeof undefined); // undefined

         console.log(typeof '112'); // string

         console.log(typeof 123); // number

         console.log(typeof true); // boolean

         console.log(typeof null); // object

        引用数据类型检测:

            let fun = function () { return 1};

            console.log("函数:", typeof fun); // function 具体原因是因为在js中定义时,会在方法上使用call方法,有call就是function,没有就是objetc;

            let arr = [1,2,3]

            console.log('数组:', typeof arr); // object

            let date = new Date();

            console.log('时间对象:',  typof date); // object 因为通过new实例出来的就是一个对象

    总结:少个null, 多个function

    instanceof 检测结果:boolean( true || false

    用法就是 :A instanceof B  (意思就是:对象A是否由B对象实例化出来的)

    instanceof 通过原型链查找的,有点像 儿子=》爸爸=》爷爷 这种关系!!!

    例子:

        console.log([] instanceof Object); // true

    用来区分类型为 object 具体属于哪一种Object.prototype.toString.call();

    构造函数--实例化出来的对象,最好使用 instanceof 来检测;如果使用 Object.prototype.toString.call() 进行检测的话,则没办法判断到底是实例后的对象还是原生Object对象。

    区分object

    就这样子!

    相关文章

      网友评论

        本文标题:typeof 和 instanceof 检测数据类型

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