最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

判斷一個(gè)變量是數(shù)組Array類型的方法

 更新時(shí)間:2013年09月16日 12:12:04   投稿:whsnow  
JavaScript中如何判斷一個(gè)變量是數(shù)組Array類型呢?本文向大家提供一個(gè)比較不錯(cuò)的方法,可以說是無懈可擊了

在很多時(shí)候,我們都需要對(duì)一個(gè)變量進(jìn)行數(shù)組類型的判斷。JavaScript中如何判斷一個(gè)變量是數(shù)組Array類型呢?我最近研究了一下,并分享給大家,希望能對(duì)大家有所幫助。

JavaScript中檢測(cè)對(duì)象的方法
1.typeof操作符
這種方法對(duì)于一些常用的類型來說那算是毫無壓力,比如Function、String、Number、Undefined等,但是要是檢測(cè)Array的對(duì)象就不起作用了。

復(fù)制代碼 代碼如下:

alert(typeof null); // "object"
alert(typeof function () {
return 1;
}); // "function"
alert(typeof '夢(mèng)龍小站'); // "string"
alert(typeof 1); // "number"
alert(typeof a); // "undefined"
alert(typeof undefined); // "undefined"
alert(typeof []); // "object"

2.instanceof操作符
這個(gè)操作符和JavaScript中面向?qū)ο笥悬c(diǎn)關(guān)系,了解這個(gè)就先得了解JavaScript中的面向?qū)ο?。因?yàn)檫@個(gè)操作符是檢測(cè)對(duì)象的原型鏈?zhǔn)欠裰赶驑?gòu)造函數(shù)的prototype對(duì)象的。
var arr = [1,2,3,1];
alert(arr instanceof Array); // true
3.對(duì)象的constructor屬性
除了instanceof,每個(gè)對(duì)象還有constructor的屬性,利用它似乎也能進(jìn)行Array的判斷。
復(fù)制代碼 代碼如下:

var arr = [1,2,3,1];
alert(arr.constructor === Array); // true

復(fù)制代碼 代碼如下:

var iframe = document.createElement('iframe'); //創(chuàng)建iframe
document.body.appendChild(iframe); //添加到body中
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // 聲明數(shù)組[1,2,3]
alert(arr instanceof Array); // false
alert(arr.constructor === Array); // false

檢測(cè)數(shù)組類型方法
以上那些方法看上去無懈可擊,但是終究會(huì)有些問題,接下來向大家提供一些比較不錯(cuò)的方法,可以說是無懈可擊了。
1.Object.prototype.toString
Object.prototype.toString的行為:首先,取得對(duì)象的一個(gè)內(nèi)部屬性[[Class]],然后依據(jù)這個(gè)屬性,返回一個(gè)類似于"[object Array]"的字符串作為結(jié)果(看過ECMA標(biāo)準(zhǔn)的應(yīng)該都知道,[[]]用來表示語言內(nèi)部用到的、外部不可直接訪問的屬性,稱為“內(nèi)部屬性”)。利用這 個(gè)方法,再配合call,我們可以取得任何對(duì)象的內(nèi)部屬性[[Class]],然后把類型檢測(cè)轉(zhuǎn)化為字符串比較,以達(dá)到我們的目的。
復(fù)制代碼 代碼如下:

function isArrayFn (o) {
return Object.prototype.toString.call(o) === '[object Array]';
}
var arr = [1,2,3,1];
alert(isArrayFn(arr));// true

JavaScript 標(biāo)準(zhǔn)文檔中定義: [[Class]] 的值只可能是下面字符串中的一個(gè): Arguments, Array, Boolean, Date, Error, Function, JSON, Math, Number, Object, RegExp, String.
這種方法在識(shí)別內(nèi)置對(duì)象時(shí)往往十分有用,但對(duì)于自定義對(duì)象請(qǐng)不要使用這種方法。
2.Array.isArray()
ECMAScript5將Array.isArray()正式引入JavaScript,目的就是準(zhǔn)確地檢測(cè)一個(gè)值是否為數(shù)組。IE9+、 Firefox 4+、Safari 5+、Opera 10.5+和Chrome都實(shí)現(xiàn)了這個(gè)方法。但是在IE8之前的版本是不支持的。
3.較好參考
綜合上面的幾種方法,有一個(gè)當(dāng)前的判斷數(shù)組的最佳寫法:
復(fù)制代碼 代碼如下:

var arr = [1,2,3,1];
var arr2 = [{ abac : 1, abc : 2 }];
function isArrayFn(value){
if (typeof Array.isArray === "function") {
return Array.isArray(value);
}else{
return Object.prototype.toString.call(value) === "[object Array]";
}
}
alert(isArrayFn(arr));// true
alert(isArrayFn(arr2));// true

JavaScript中如何判斷一個(gè)變量是數(shù)組Array類型呢?以上便是我為大家分享的JavaScript中判斷一個(gè)變量是數(shù)組Array類型的方法,希望能對(duì)大家有所幫助。

相關(guān)文章

  • JavaScript模塊隨意拖動(dòng)示例代碼

    JavaScript模塊隨意拖動(dòng)示例代碼

    這篇文章主要介紹了JavaScript模塊隨意拖動(dòng)的具體實(shí)現(xiàn),需要的朋友可以參考下
    2014-05-05
  • 基于JavaScript實(shí)現(xiàn)自定義滾動(dòng)條

    基于JavaScript實(shí)現(xiàn)自定義滾動(dòng)條

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)自定義滾動(dòng)條,可以直接使用的滾動(dòng)條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 前端監(jiān)控頁面異常的常用方法

    前端監(jiān)控頁面異常的常用方法

    前端開發(fā)常見問題之一: 資源異常、js異常,頁面出了問題常見的想法是:如何看到錯(cuò)誤信息,資源腳本是否正常,像js、css、圖片這些資源文件經(jīng)常受網(wǎng)絡(luò)等原因,導(dǎo)致資源加載異常,這些會(huì)直接影響我們的頁面,本文給大家介紹前端監(jiān)控頁面異常的常用方法,需要的朋友可以參考下
    2025-04-04
  • canvas壓縮圖片轉(zhuǎn)換成base64格式輸出文件流

    canvas壓縮圖片轉(zhuǎn)換成base64格式輸出文件流

    本文主要介紹了canvas壓縮圖片轉(zhuǎn)換成base64格式輸出文件流的方法,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • 原生JS實(shí)現(xiàn)彈幕效果的簡(jiǎn)單操作指南

    原生JS實(shí)現(xiàn)彈幕效果的簡(jiǎn)單操作指南

    這篇文章主要給大家介紹了關(guān)于原生JS實(shí)現(xiàn)彈幕效果的簡(jiǎn)單操作指南,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • javascript中HTMLDOM操作詳解

    javascript中HTMLDOM操作詳解

    這篇文章主要介紹了javascript中HTMLDOM操作詳解,需要的朋友可以參考下
    2014-12-12
  • 可以讀取EXCEL文件的js代碼

    可以讀取EXCEL文件的js代碼

    js讀取 EXCEL 文件 的實(shí)現(xiàn)代碼,比較全了大家可以自行測(cè)試了。
    2009-08-08
  • js和jQuery以及easyui實(shí)現(xiàn)對(duì)下拉框的指定賦值方法

    js和jQuery以及easyui實(shí)現(xiàn)對(duì)下拉框的指定賦值方法

    下面小編就為大家分享一篇js和jQuery以及easyui實(shí)現(xiàn)對(duì)下拉框的指定賦值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 利用Vconsole和Fillder進(jìn)行移動(dòng)端抓包調(diào)試方法

    利用Vconsole和Fillder進(jìn)行移動(dòng)端抓包調(diào)試方法

    這篇文章主要介紹了利用Vconsole和Fillder進(jìn)行移動(dòng)端抓包調(diào)試,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • 微信小程序中實(shí)現(xiàn)雙向綁定的實(shí)戰(zhàn)過程

    微信小程序中實(shí)現(xiàn)雙向綁定的實(shí)戰(zhàn)過程

    最近在小程序的開發(fā)過程中,需要用到雙向綁定,遇到報(bào)錯(cuò)才知道微信本身是不支持對(duì)象雙向綁定的,折騰一番找到解決方案,下面這篇文章主要給大家介紹了關(guān)于微信小程序中實(shí)現(xiàn)雙向綁定的相關(guān)資料,需要的朋友可以參考下
    2023-01-01

最新評(píng)論

平顶山市| 新巴尔虎右旗| 咸阳市| 嘉禾县| 遂川县| 彭阳县| 神池县| 樟树市| 九寨沟县| 吉林省| 永嘉县| 柯坪县| 屯门区| 洛浦县| 资阳市| 台北县| 石河子市| 襄汾县| 塘沽区| 华阴市| 揭阳市| 东台市| 高平市| 井研县| 北海市| 义乌市| 嵩明县| 安溪县| 张掖市| 蓬安县| 繁峙县| 炎陵县| 南安市| 宁明县| 齐河县| 徐汇区| 罗定市| 杭锦后旗| 老河口市| 东至县| 济南市|