欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript判斷數(shù)組類型的方法

 更新時(shí)間:2019年10月23日 16:58:23   作者:得閑讀書  
這篇文章主要介紹了JavaScript判斷數(shù)組類型的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言

JavaScript中關(guān)于數(shù)組的判定問題,一直都是一個(gè)必須要掌握的點(diǎn),那么,運(yùn)用知識(shí),如何判斷一個(gè)類型是數(shù)組,就需要有對(duì)JavaScript使用有著深入的了解。

判斷方法

一、Array.isArray

ES5新增的數(shù)組方法,Array.isArray應(yīng)該是我們最先想到的判定方式,現(xiàn)在應(yīng)用的也比較廣泛。

const arr = [1,2,3,4]
Array.isArray(arr)  // true

如果是在支持ES5的瀏覽器中,用這樣的方式自然沒什么問題,但是如果是在IE9以下版本,這個(gè)方法并未受到支持,這時(shí)候我們就要用別的方式來判斷數(shù)組。

二、instanceof

一般來說,instanceof關(guān)鍵字,是用來判斷某個(gè)元素是否某對(duì)象構(gòu)造函數(shù)實(shí)例。在數(shù)組判斷上,instanceof關(guān)鍵字也可以進(jìn)行數(shù)組的判定。

const arr = [1, 2, 3, 4]
arr instanceof Array  // true

instanceof支持的瀏覽器版本比較多,所以一般來說,用instanceof判斷,會(huì)比Array.isArray判定的范圍要廣泛。

三、toString

對(duì)象的toString方式也可以判定數(shù)組類型,一般來說這種方式的判定是各大庫的一種Array.isArray的代替實(shí)現(xiàn)。

例如,polyfill中,就是如此實(shí)現(xiàn):

if (!Array.isArray) {
 Array.isArray = function(arg) {
  return Object.prototype.toString.call(arg) === '[object Array]';
 };
}

const arr = [1, 2, 3, 4]
Object.prototype.toString.call(arr) === '[Object Array]'  // true

四、constructor

除了以上的方式之外,我們還可以通過構(gòu)造函數(shù)來判定:

const arr = [1, 2, 3, 4]
arr.constructor === Array // true
arr.__proto__.constructor === Array //true

弊端

instanceof和constructor的判定也存在一些弊端,他們判定的數(shù)組必須定義在同一個(gè)頁面,否則將會(huì)判定為false。

如果在iframe中的數(shù)組判定,就會(huì)出錯(cuò)。

var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // [1,2,3]

// Correctly checking for Array
Array.isArray(arr); // true
// Considered harmful, because doesn't work through iframes
arr instanceof Array; // false
arr.constructor === Array; // false

總結(jié)

由上述幾個(gè)方法判定,可以得出,其實(shí)polyfill的判定是最合理的,也最具有兼容性的一種判定。

利用toString判定,勝出。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決layer彈出層的內(nèi)容頁點(diǎn)擊按鈕跳轉(zhuǎn)到新的頁面問題

    解決layer彈出層的內(nèi)容頁點(diǎn)擊按鈕跳轉(zhuǎn)到新的頁面問題

    今天小編就為大家分享一篇解決layer彈出層的內(nèi)容頁點(diǎn)擊按鈕跳轉(zhuǎn)到新的頁面問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 微信小程序事件流原理解析

    微信小程序事件流原理解析

    這篇文章主要介紹了微信小程序事件流原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • javascript數(shù)組快速打亂重排的方法

    javascript數(shù)組快速打亂重排的方法

    本文介紹了利用Array.prototype.sort方法和Math.random()實(shí)現(xiàn)快速打亂數(shù)組的方法,大家參考使用吧
    2014-01-01
  • JavaScript實(shí)現(xiàn)實(shí)時(shí)更新系統(tǒng)時(shí)間的實(shí)例代碼

    JavaScript實(shí)現(xiàn)實(shí)時(shí)更新系統(tǒng)時(shí)間的實(shí)例代碼

    本文給大家分享javascript實(shí)現(xiàn)實(shí)時(shí)更新系統(tǒng)時(shí)間的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-04-04
  • axios實(shí)現(xiàn)簡(jiǎn)單文件上傳功能

    axios實(shí)現(xiàn)簡(jiǎn)單文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了axios實(shí)現(xiàn)簡(jiǎn)單文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 使用Promise和JavaScript有效處理1000個(gè)請(qǐng)求的方法

    使用Promise和JavaScript有效處理1000個(gè)請(qǐng)求的方法

    在現(xiàn)代Web開發(fā)中,處理高并發(fā)請(qǐng)求是一個(gè)常見的挑戰(zhàn),當(dāng)我們需要從服務(wù)器獲取大量數(shù)據(jù)或執(zhí)行多個(gè)異步任務(wù)時(shí),如何有效地管理請(qǐng)求的并發(fā)性和性能變得至關(guān)重要,本文將介紹如何使用Promise和JavaScript來管理高并發(fā)請(qǐng)求,需要的朋友可以參考下
    2023-09-09
  • 微信小程序?qū)崿F(xiàn)監(jiān)聽頁面滾動(dòng)

    微信小程序?qū)崿F(xiàn)監(jiān)聽頁面滾動(dòng)

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)監(jiān)聽頁面滾動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 原生js+ajax分頁組件

    原生js+ajax分頁組件

    這篇文章主要為大家詳細(xì)介紹了原生js+ajax分頁組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • JS平滑無縫滾動(dòng)效果的實(shí)現(xiàn)代碼

    JS平滑無縫滾動(dòng)效果的實(shí)現(xiàn)代碼

    下面小編就為大家?guī)硪黄狫S平滑無縫滾動(dòng)效果的實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考
    2016-05-05
  • JavaScript?數(shù)據(jù)結(jié)構(gòu)之集合創(chuàng)建(1)

    JavaScript?數(shù)據(jù)結(jié)構(gòu)之集合創(chuàng)建(1)

    這篇文章主要介紹了JavaScript?數(shù)據(jù)結(jié)構(gòu)之集合創(chuàng)建,集合是由一組無序且唯一的元素組成。數(shù)據(jù)結(jié)構(gòu)中的集合,對(duì)應(yīng)的是數(shù)學(xué)概念當(dāng)中的有限集合;下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-04-04

最新評(píng)論