成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

使用Object.prototype.toString判斷數(shù)據(jù)類(lèi)型

wudengzan / 1664人閱讀

摘要:例如基本類(lèi)型數(shù)據(jù)將返回包裝對(duì)象復(fù)雜類(lèi)型對(duì)象引用類(lèi)型將直接返回返回當(dāng)前對(duì)象對(duì)應(yīng)的字符串形式。例如使用方法,可以在任意值上調(diào)用這個(gè)方法幫助我們判斷這個(gè)值的類(lèi)型。

工作中使用 typeofinstanceof 操作符往往無(wú)法得到數(shù)據(jù)的準(zhǔn)確類(lèi)型,本文將結(jié)合一些知識(shí)點(diǎn),寫(xiě)一個(gè)工具方法,來(lái)解決這個(gè)痛點(diǎn)。
相關(guān)知識(shí)點(diǎn):

JavaScript 原生提供Object對(duì)象,所有其他對(duì)象都繼承自Object對(duì)象,即那些對(duì)象都是Object對(duì)象的實(shí)例。

Object對(duì)象本身是一個(gè)構(gòu)造函數(shù),也可以當(dāng)作工具方法使用,將任意值轉(zhuǎn)為對(duì)象。例如:

    // 基本類(lèi)型數(shù)據(jù)將返回包裝對(duì)象
        var str = "hello world";
        str === Object( str ) // false
        Object( str ) instanceof String  //true
    
        var num = 123 ; 
        num === Object( num ) // false 
        Object(num) instanceof Number // true
    
    //復(fù)雜類(lèi)型(對(duì)象、引用類(lèi)型)將直接返回
        var obj = { name:"mirror" }
        obj === Object( obj )    // true
        
        var arr = [ "a" , "b" , "c" ]
        arr === Object( arr )    // true

Object.prototype.toString()返回當(dāng)前對(duì)象對(duì)應(yīng)的字符串形式。例如:

    var obj = new Object();
    obj.toString()  //  "[object object]"

Object的實(shí)例對(duì)象可以自定義toString方法,覆蓋掉Object.prototype.toString方法。例如:

   var arr = [ "a" , "b" ];
   arr.toString() // "a,b"

使用call方法,可以在任意值上調(diào)用這個(gè)方法,幫助我們判斷這個(gè)值的類(lèi)型。例如:

    Object.prototype.toString.call(2) // "[object Number]"   
    Object.prototype.toString.call("hello world" ) // "[object String]"  
    Object.prototype.toString.call( true ) // "[object Boolean]"  

方法封裝
    function type (data){
        if(arguments.length === 0) return new Error("type方法未傳參");
        var typeStr = Object.prototype.toString.call(data);
        return typeStr.match(/[object (.*?)]/)[1].toLowerCase();      
    }
    
    type( {} ) //"object"
    type( new Date() ) //"date"
    type( [] ) //"array"

詳細(xì)講解請(qǐng)參考阮一峰博客

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107981.html

相關(guān)文章

  • 細(xì)數(shù)判斷數(shù)據(jù)類(lèi)型的各種方法

    摘要:可用于判斷多種數(shù)據(jù)類(lèi)型基本數(shù)據(jù)類(lèi)型和內(nèi)置對(duì)象,然而對(duì)于一些自定義構(gòu)造函數(shù)生成的對(duì)象就不能進(jìn)行判斷了。判斷是不是所有數(shù)據(jù)類(lèi)型中,只有不等于它本身判斷數(shù)組的方法除了上文提到的三種方法可判斷外,還有一個(gè)構(gòu)造函數(shù)自帶的方法可判斷。 數(shù)據(jù)類(lèi)型的分類(lèi) 要想判斷數(shù)據(jù)類(lèi)型,首先要知道數(shù)據(jù)類(lèi)型的分類(lèi)。數(shù)據(jù)類(lèi)型分為基本數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型。 基本數(shù)據(jù)類(lèi)型 基本數(shù)據(jù)類(lèi)型有 五 種,ES6中新加了第 六 種...

    hoohack 評(píng)論0 收藏0
  • javascript 數(shù)據(jù)類(lèi)型判斷 (常見(jiàn)庫(kù)的數(shù)據(jù)類(lèi)型判斷源碼的分析)

    摘要:對(duì)象類(lèi)型常見(jiàn)的有,,,正則新增自己提供的樂(lè)行判斷如果不對(duì)對(duì)象做嚴(yán)格區(qū)分使用。的實(shí)現(xiàn)使用了原型繼承的表示左表達(dá)式,表示右表達(dá)式,它是用是否等于來(lái)判斷對(duì)象的類(lèi)型的。常見(jiàn)框架和庫(kù)的實(shí)數(shù)據(jù)類(lèi)型判斷測(cè)試這里將的實(shí)現(xiàn)原理抽取出來(lái),用原生實(shí)現(xiàn)。 JavaScript一共有六種數(shù)據(jù)類(lèi)型,分為原始類(lèi)型(又名基本類(lèi)型)和對(duì)象類(lèi)型(又名引用類(lèi)型) 原始類(lèi)型有五種,分別為number,string,boole...

    libin19890520 評(píng)論0 收藏0
  • JS數(shù)據(jù)類(lèi)型& 判斷

    摘要:的數(shù)據(jù)類(lèi)型,共有六種。通常,數(shù)值字符串布爾值這三種類(lèi)型,合稱(chēng)為原始類(lèi)型的值,即它們是最基本的數(shù)據(jù)類(lèi)型,不能再細(xì)分了。運(yùn)算符返回一個(gè)布爾值,表示某個(gè)對(duì)象是否為指定的構(gòu)造函數(shù)的實(shí)例。 以下內(nèi)容摘自阮一峰-JavaScript-標(biāo)準(zhǔn)參考教程 數(shù)據(jù)類(lèi)型 JavaScript 語(yǔ)言的每一個(gè)值,都屬于某一種數(shù)據(jù)類(lèi)型。JavaScript 的數(shù)據(jù)類(lèi)型,共有六種。(ES6 又新增了第七種 Symbo...

    zhangxiangliang 評(píng)論0 收藏0
  • 01.javascript之數(shù)據(jù)類(lèi)型

    摘要:新增了第七種類(lèi)型的值數(shù)值字符串布爾值對(duì)象數(shù)據(jù)類(lèi)型判斷有三種方法,可以判斷一個(gè)值的類(lèi)型運(yùn)算符運(yùn)算符方法運(yùn)算符運(yùn)算符可以返回一個(gè)值的數(shù)據(jù)類(lèi)型。運(yùn)算符運(yùn)算符返回一個(gè)布爾值,表示對(duì)象是否為某個(gè)構(gòu)造函數(shù)的實(shí)例。 1.數(shù)據(jù)類(lèi)型 JavaScript一共有六種數(shù)據(jù)類(lèi)型。(ES6新增了第七種Symbol類(lèi)型的值) 數(shù)值(Number) 字符串(String) 布爾值(boolean) undefin...

    Aceyclee 評(píng)論0 收藏0
  • 使用toString方法判斷對(duì)象類(lèi)型

    摘要:操作符是最常見(jiàn)的類(lèi)型判斷方法,但其有局限性,只能判斷基本數(shù)據(jù)類(lèi)型,對(duì)于數(shù)組,日期等對(duì)象無(wú)法區(qū)分,統(tǒng)一顯示為。配合,改變方法執(zhí)行時(shí)的所在的環(huán)境,可以得到對(duì)象的精確類(lèi)型。 typeof操作符是最常見(jiàn)的類(lèi)型判斷方法,但其有局限性,只能判斷基本數(shù)據(jù)類(lèi)型,對(duì)于數(shù)組,日期等對(duì)象無(wú)法區(qū)分,統(tǒng)一顯示為object。 typeof []; //object typeof new Date(); //ob...

    xiangzhihong 評(píng)論0 收藏0
  • 標(biāo)準(zhǔn)庫(kù)(一)object對(duì)象

    摘要:控制對(duì)象狀態(tài)的方法防止對(duì)象擴(kuò)展。判斷一個(gè)對(duì)象是否被凍結(jié)。返回當(dāng)前對(duì)象對(duì)應(yīng)的值。方法的作用是返回一個(gè)對(duì)象的字符串形式上面代碼表示,對(duì)于一個(gè)對(duì)象調(diào)用方法,會(huì)返回字符串用途通過(guò)自定義方法,可以讓對(duì)象在自動(dòng)類(lèi)型轉(zhuǎn)換時(shí),得到想要的字符串形式。 概述Object()Object 構(gòu)造函數(shù)Object 的靜態(tài)方法「本身的方法Object.keys(),Object.getOwnPropertyNam...

    Muninn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<