typeof运算符可以返回一个值的数据类型。数值、字符串、布尔值分别返回number、string、boolean。 
        function fun() {}
        console.log(typeof 123)//number
        console.log(typeof '123')//string
        console.log(typeof false)//boolean
        console.log(typeof undefined)//undefined
        console.log(typeof a)//undefined  a没有声明
        console.log(typeof [])//object
        console.log(typeof {})//object
        console.log(typeof fun)//function
        console.log(typeof null)//object
 
总结:根据上面的结果,typeof不仅可以区分基本数据类型还可以区分Object和function 
 
instanceof判断对象‘具体’类型。function、array是特殊的object,那么要怎么区分是function、array的类型呢? 
instanceof查看构造函数是否在实例对象的原型链上 
 
        var obj = {
            arr:[2,'23',console.log],
            fun:function(){
                console.log(obj.arr)
            }
        }
        console.log(obj instanceof Object,obj instanceof Array)//true false
        console.log(obj.arr instanceof Object,obj.arr instanceof Array)//true true
        console.log(obj.fun instanceof Object,obj.fun instanceof Function)//true true
 
用===判断undefined和null,因为undefined和null都只有一个值而且还是他们本身 
        var a 
        console.log(a==='undefined',a===undefined)//false true
        var b = null
        console.log(b===null)//true
        //注意的是null == undefined结果是true
        console.log(null == undefined)//true
 
最后编辑于 :2021.01.12 17:38:30 
©著作权归作者所有,转载或内容合作请联系作者 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。