检测数据类型的四种方法

检测数据类型的方式

typeof

返回结果是一个字符串,typeof不能检测null,和数组,都是返回的object
typeof可以检测基本数据类型和引用数据类型
缺点: 不能检测null 和 Array,返回的都是Object

typeof 1
"number"
typeof "1"
"string"
typeof false
"boolean"
typeof null
"object"
typeof undefined
"undefined"
typeof {}
"object"
typeof []
"object"
typeof /\d/
"object"
typeof Symbol(1)
"symbol"
typeof 2n
"bigint"
typeof function(){}
"function"

instanceof

instanceof 不能用于判断基本数据类型,只能用于判断引用数据类型,判断其是否属于某个类的实例对象
instanceof 的内部机制是通过判断对象的原型链中是不是能找到类型的 prototype。

function Car(make, model, year) {
          this.make = make;
          this.model = model;
          this.year = year;
        }
        const auto = new Car('Honda', 'Accord', 1998);


        console.log(typeof Car);//typeof可以检测function类型,但是不能检测Array和null
        console.log(auto instanceof Car);//true

        console.log(auto instanceof Object);//true

        console.log([1,2] instanceof Array);//true
        console.log([] instanceof Array);//true
        console.log([] instanceof Object);//true
        console.log({} instanceof Object);//true
        console.log({name:'123'} instanceof Object);//true
        console.log(Function instanceof Object);//true
        console.log(function(){} instanceof Object);//true
        /* *************************** */
        /* 特殊的情况 */
        console.log("1" instanceof String); //false?
        console.log(1 instanceof Number); //false?      
上一篇:Class 的基本语法


下一篇:Deploy .Net project automatically with MsBuild and MsDeploy (1)