js更精準的判斷數據類型

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,如果想具體判斷類型的話,上面的方法是一個最佳的實際方法

喜歡的請關注哦😯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章