国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

判斷數(shù)據(jù)類型

dongfangyiyu / 2858人閱讀

摘要:判斷一個數(shù)據(jù)是否是數(shù)組,在以往的實現(xiàn)中,可以基于鴨子類型的概念來判斷,比如判斷這個數(shù)據(jù)有沒有屬性,有沒有方法或者方法等。所以我們可以編寫一系列的函數(shù)。代碼如下輸出我們還可以用循環(huán)語句,來批量注冊這些函數(shù)輸出輸出

判斷一個數(shù)據(jù)是否是數(shù)組,在以往的實現(xiàn)中,可以基于鴨子類型的概念來判斷,比如判斷這個數(shù)據(jù)有沒有l(wèi)ength 屬性,有沒有sort方法或者slice 方法等。但更好的方式是用Object.prototype.toString來計算。

Object.prototype.toString.call(obj)返回一個字符串,比如Object.prototype.toString.call([1,2,3])總是返回"[objectArray]",而Object.prototype.toString.call(“str”)總是返回"[objectString]"。所以我們可以編寫一系列的isType 函數(shù)。代碼如下:

var isString = function( obj ){
    return Object.prototype.toString.call( obj ) === "[object String]";
};
var isArray = function( obj ){
    return Object.prototype.toString.call( obj ) === "[object Array]";
};
var isNumber = function( obj ){
    return Object.prototype.toString.call( obj ) === "[object Number]";
};
var isType = function( type ){
    return function( obj ){
    return Object.prototype.toString.call( obj ) === "[object "+ type +"]";
}
};
var isString = isType( "String" );
var isArray = isType( "Array" );
var isNumber = isType( "Number" );
    console.log( isArray( [ 1, 2, 3 ] ) ); // 輸出:true

我們還可以用循環(huán)語句,來批量注冊這些isType 函數(shù):

var Type = {};
    for ( var i = 0, type; type = [ "String", "Array", "Number"][ i++ ]; ){
        (function( type ){
            Type[ "is" + type ] = function( obj ){
                return Object.prototype.toString.call( obj )==="[object "+ type +"]";
            }
        })( type )
    };
Type.isArray( [] ); // 輸出:true
Type.isString( "str" ); // 輸出:true

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/78814.html

相關(guān)文章

  • 細數(shù)判斷數(shù)據(jù)類型的各種方法

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

    hoohack 評論0 收藏0
  • javascript 數(shù)據(jù)類型判斷 (常見庫的數(shù)據(jù)類型判斷源碼的分析)

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

    libin19890520 評論0 收藏0
  • js中對數(shù)據(jù)類型的總結(jié)及判斷數(shù)據(jù)類型的各種方法及優(yōu)缺點

    摘要:最常見的判斷方法它的官方解釋操作符返回一個字符串,表示未經(jīng)計算的操作數(shù)的類型。另外,是判斷對象是否屬于某一類型,而不是獲取的對象的類型。多個窗口意味著多個全局環(huán)境,不同的全局環(huán)境擁有不同的全局對象,從而擁有不同的內(nèi)置類型構(gòu)造函數(shù)。 js中的數(shù)據(jù)類型 js中只有六種原始數(shù)據(jù)類型和一個Object: Boolean Null Undefined Number String Symbol ...

    voyagelab 評論0 收藏0
  • 每日 30 秒 ? 數(shù)據(jù)類型大亂燉

    showImg(https://segmentfault.com/img/remote/1460000018796041?w=900&h=500); 簡介 字符串、數(shù)字、布爾值、Null、Undefined、對象、數(shù)組、函數(shù)、判斷方法 JavaScript 中有兩種數(shù)據(jù)類型,分別是基本數(shù)據(jù)類型和引用數(shù)據(jù)類型: 基本數(shù)據(jù)類型 引用數(shù)據(jù)類型 Number、String、Boolean、Null...

    meteor199 評論0 收藏0
  • 如何判斷JavaScript的數(shù)據(jù)類型

    摘要:本文將講解我目前所知道的判斷數(shù)據(jù)類型的方法。數(shù)據(jù)類型一共有種除了之外的種屬于原始數(shù)據(jù)類型。等價于問題四的返回值是什么答案。 本文將講解我目前所知道的判斷JavaScript數(shù)據(jù)類型的方法。JavaScript數(shù)據(jù)類型一共有7種: Undefined Null Boolean String Symbol Number Object 除了Object之外的6種屬于原始數(shù)據(jù)類型。有時,我...

    jackzou 評論0 收藏0
  • 雜談數(shù)據(jù)類型獲取

    摘要:如果項目中需要頻繁的進行數(shù)據(jù)類型的判斷與獲取可以考慮進行封裝,簡單的處理與已足夠。 前言 在js中數(shù)據(jù)我們經(jīng)常需要判斷或者獲取數(shù)據(jù)類型,大部分時候我們都是通過type加instanceof來組合判斷數(shù)據(jù)類型來實現(xiàn),大部分代碼中對于數(shù)據(jù)類型的獲取處理都比較丑陋,前段時間看了一下Q的源代碼中對數(shù)據(jù)類型的判斷與獲取處理,看起來相當簡潔也比較好用,這篇文章來進行一下發(fā)散。 typeof 在js...

    newsning 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<