js更精准的判断数据类型

本文深入探讨JavaScript中使用toString方法进行精确类型判断的技巧,通过Object.prototype.toString和Set.prototype.toString,可以准确识别包括Number、String、Boolean、Undefined、Null、Array、Function、Object、RegExp、Set等在内的各种数据类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

toString 方法

Number.toString()   :     var a=5;     a.toString()  //  "5"

String.toString()    :   var a = "jiji"      a.toString()   // "jiji"

Boolean.toString()   : var a = true;     a.toString()     //"true"

Undefined.toString()   :  var a = undefined ;   a.toString()     // Cannot read property 'toString' of undefined

Null.toString():    var a = null ;    a.toString()      //   Cannot read property 'toString' of undefined

Array.toString()    var a = [];       a.toString()       //   ""

Function.toString()   var a = function(){}     a.toString()     //   "function(){}"

Object.toString()       var a = {}             a.toString()   //   "[object Object]"

Reg.toString()           var a = /^http|https/g        a.toString()    //  "/^http|https/g"

Set.toString()            var a= new Set([1,2])     a.toString()    //  "[object Set]"

注意:目前大家发现 Object.toString,Set.toString方法中会返回数据类型信息,能不能利用这个特性,判断对象的具体类型呢?我们尝试一下:

var _toString = Object.prototype.toString;||var _toString = Set.prototype.toString;
_toString.call(6)         //  "[object Number]"

_toString.call("str")                    //    "[object String]"

_toString.call(true)                    //    "[object Boolean]"

_toString.call(undefined)                    //    "[object Undefined]"

_toString.call(null)                    //    "[object Null]"

_toString.call([])                    //    "[object Array]"

_toString.call(function(){})                    //    "[object Function]"

_toString.call(/^http|https/g)                    //    "[object RegExp]"

_toString.call(new Date())                    //   "[object Date]"

 

当大家详细看完上面的测试后,想想这个有上面用途呢?目前js的typeof判断类型不是很具体,如null和object和array等都是Object,如果想具体判断类型的话,上面的方法是一个最佳的实际方法

喜欢的请关注哦😯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值