JavaScript判断数据类型-4种方法

方法一、typeof -检测数据类型运算符

    <script>
        console.log("数值",typeof 10)             //number
        console.log("布尔",typeof true)           //boolean
        console.log("字符串",typeof '你好')       //string
        console.log("数组",typeof [])             //object
        console.log("函数",typeof function(){})   //function
        console.log("对象",typeof {})             //object
        console.log("undefined",typeof undefined) //undefined
        console.log("null",typeof null);          //object
    </script>

方法二、instanceof-检测实例是否属于这个类

可以正确判断对象的类型,不可以判断基本数据类型。内部运行机制,判断在它的原型链上能否找到这个类型的原型

    <script>
        console.log("数值",10 instanceof Number)             //false
        console.log("布尔",true instanceof Boolean)           //false
        console.log("字符串",'你好' instanceof String)       //false
        console.log("数组",[] instanceof Array)             //true
        console.log("函数",function(){} instanceof Function)   //true
        console.log("对象",{} instanceof Object)             //true
    </script>

方法三、constructor-检测实例和类的关系,从而检测数据类型

    <script>
        console.log("数值",(10).constructor=== Number)             //true
        console.log("布尔",(true).constructor=== Boolean)          //true
        console.log("字符串",('你好').constructor=== String)       //true
        console.log("数组",([]).constructor=== Array)             //true
        console.log("函数",(function(){}).constructor=== Function) //true
        console.log("对象",({}).constructor=== Object)             //true
    </script>

方法四、Object.prototype.toString.call()

    <script>
        var a = Object.prototype.toString
        console.log("数值",a.call(10))             //[object Number]
        console.log("布尔",a.call(true))          //[object Boolean]
        console.log("字符串",a.call('你好'))       //[object string]
        console.log("数组",a.call([]))             //[object Array]
        console.log("函数",a.call(function(){}))  //[object Function]
        console.log("对象",a.call({}))             //[object Object]
        console.log("undefined",a.call(undefined));//[object Undefined]
        console.log("null",a.call(null));          //[object Null]
    </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值