摘要:判斷一個(gè)數(shù)據(jù)是否是數(shù)組,在以往的實(shí)現(xiàn)中,可以基于鴨子類型的概念來(lái)判斷,比如判斷這個(gè)數(shù)據(jù)有沒有屬性,有沒有方法或者方法等。所以我們可以編寫一系列的函數(shù)。代碼如下輸出我們還可以用循環(huán)語(yǔ)句,來(lái)批量注冊(cè)這些函數(shù)輸出輸出
判斷一個(gè)數(shù)據(jù)是否是數(shù)組,在以往的實(shí)現(xiàn)中,可以基于鴨子類型的概念來(lái)判斷,比如判斷這個(gè)數(shù)據(jù)有沒有l(wèi)ength 屬性,有沒有sort方法或者slice 方法等。但更好的方式是用Object.prototype.toString來(lái)計(jì)算。
Object.prototype.toString.call(obj)返回一個(gè)字符串,比如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)語(yǔ)句,來(lái)批量注冊(cè)這些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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/78814.html
摘要:可用于判斷多種數(shù)據(jù)類型基本數(shù)據(jù)類型和內(nèi)置對(duì)象,然而對(duì)于一些自定義構(gòu)造函數(shù)生成的對(duì)象就不能進(jìn)行判斷了。判斷是不是所有數(shù)據(jù)類型中,只有不等于它本身判斷數(shù)組的方法除了上文提到的三種方法可判斷外,還有一個(gè)構(gòu)造函數(shù)自帶的方法可判斷。 數(shù)據(jù)類型的分類 要想判斷數(shù)據(jù)類型,首先要知道數(shù)據(jù)類型的分類。數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。 基本數(shù)據(jù)類型 基本數(shù)據(jù)類型有 五 種,ES6中新加了第 六 種...
摘要:對(duì)象類型常見的有,,,正則新增自己提供的樂行判斷如果不對(duì)對(duì)象做嚴(yán)格區(qū)分使用。的實(shí)現(xiàn)使用了原型繼承的表示左表達(dá)式,表示右表達(dá)式,它是用是否等于來(lái)判斷對(duì)象的類型的。常見框架和庫(kù)的實(shí)數(shù)據(jù)類型判斷測(cè)試這里將的實(shí)現(xiàn)原理抽取出來(lái),用原生實(shí)現(xiàn)。 JavaScript一共有六種數(shù)據(jù)類型,分為原始類型(又名基本類型)和對(duì)象類型(又名引用類型) 原始類型有五種,分別為number,string,boole...
摘要:最常見的判斷方法它的官方解釋操作符返回一個(gè)字符串,表示未經(jīng)計(jì)算的操作數(shù)的類型。另外,是判斷對(duì)象是否屬于某一類型,而不是獲取的對(duì)象的類型。多個(gè)窗口意味著多個(gè)全局環(huán)境,不同的全局環(huán)境擁有不同的全局對(duì)象,從而擁有不同的內(nèi)置類型構(gòu)造函數(shù)。 js中的數(shù)據(jù)類型 js中只有六種原始數(shù)據(jù)類型和一個(gè)Object: Boolean Null Undefined Number String Symbol ...
showImg(https://segmentfault.com/img/remote/1460000018796041?w=900&h=500); 簡(jiǎn)介 字符串、數(shù)字、布爾值、Null、Undefined、對(duì)象、數(shù)組、函數(shù)、判斷方法 JavaScript 中有兩種數(shù)據(jù)類型,分別是基本數(shù)據(jù)類型和引用數(shù)據(jù)類型: 基本數(shù)據(jù)類型 引用數(shù)據(jù)類型 Number、String、Boolean、Null...
摘要:本文將講解我目前所知道的判斷數(shù)據(jù)類型的方法。數(shù)據(jù)類型一共有種除了之外的種屬于原始數(shù)據(jù)類型。等價(jià)于問(wèn)題四的返回值是什么答案。 本文將講解我目前所知道的判斷JavaScript數(shù)據(jù)類型的方法。JavaScript數(shù)據(jù)類型一共有7種: Undefined Null Boolean String Symbol Number Object 除了Object之外的6種屬于原始數(shù)據(jù)類型。有時(shí),我...
摘要:如果項(xiàng)目中需要頻繁的進(jìn)行數(shù)據(jù)類型的判斷與獲取可以考慮進(jìn)行封裝,簡(jiǎn)單的處理與已足夠。 前言 在js中數(shù)據(jù)我們經(jīng)常需要判斷或者獲取數(shù)據(jù)類型,大部分時(shí)候我們都是通過(guò)type加instanceof來(lái)組合判斷數(shù)據(jù)類型來(lái)實(shí)現(xiàn),大部分代碼中對(duì)于數(shù)據(jù)類型的獲取處理都比較丑陋,前段時(shí)間看了一下Q的源代碼中對(duì)數(shù)據(jù)類型的判斷與獲取處理,看起來(lái)相當(dāng)簡(jiǎn)潔也比較好用,這篇文章來(lái)進(jìn)行一下發(fā)散。 typeof 在js...
閱讀 3695·2021-11-25 09:43
閱讀 2655·2021-11-25 09:43
閱讀 3854·2021-11-24 09:38
閱讀 703·2021-11-18 10:02
閱讀 2246·2021-09-22 15:53
閱讀 3004·2019-08-30 15:44
閱讀 2782·2019-08-30 14:01
閱讀 2766·2019-08-29 15:15