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

JavaScript判斷變量是否為數(shù)組的方法(Array)

 更新時間:2016年02月24日 10:27:42   作者:好JSER  
這篇文章主要介紹了JavaScript判斷變量是否為數(shù)組的方法(Array),涉及到j(luò)avascript 數(shù)組 變量相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧

 今天小編給大家整理些關(guān)于javascript判斷變量是否是數(shù)組(Array)的相關(guān)知識,主要通過以下四點給大家展開話題,具體內(nèi)容如下所示:

1. typeof真的那么厲害嗎??

//首先看代碼
var ary = [1,23,4];
console.log(typeof ary); //輸出結(jié)果是Object

上面的辦法并不能實時的檢測出是否是數(shù)組,只能判斷其類型,所以說typeof判斷基本類型數(shù)據(jù)還是挺好的,但是不能準(zhǔn)確測試出是否是數(shù)組(typeof的具體用法以后提及,現(xiàn)在回歸正題)

2.instanceof 判斷

var ary = [1,23,4];
console.log(ary instanceof Array)//true;

從輸出的效果來看,還是挺令人滿意的,能準(zhǔn)確的檢測出數(shù)據(jù)類型是否是數(shù)組,不要高興的太早,大家先想想這個的缺點,我們接著說第三種方法

3.原型鏈方法

var ary = [1,23,4];
console.log(ary.__proto__.constructor==Array);//true
console.log(ary.constructor==Array)//true 這兩段代碼是一樣的

這個辦法開起來好高大上哦~~,利用了原型鏈的方法,但是但是,這個是有兼容的哦,在IE早期版本里面__proto__是沒有定義的哦~而且,這個仍然有局限性,我們現(xiàn)在就來總結(jié)一下第2種方法和第3種方法局限性

總結(jié)一下第2種方法和第3種方法局限性

instanceof 和constructor 判斷的變量,必須在當(dāng)前頁面聲明的,比如,一個頁面(父頁面)有一個框架,框架中引用了一個頁面(子頁面),在子頁面中聲明了一個ary,并將其賦值給父頁面的一個變量,這時判斷該變量,Array == object.constructor;會返回false;

原因:

1、array屬于引用型數(shù)據(jù),在傳遞過程中,僅僅是引用地址的傳遞。

2、每個頁面的Array原生對象所引用的地址是不一樣的,在子頁面聲明的array,所對應(yīng)的構(gòu)造函數(shù),是子頁面的Array對象;父頁面來進(jìn)行判斷,使用的Array并不等于子頁面的Array;切記,不然很難跟蹤問題!

4.通用的方法

var ary = [1,23,4];
function isArray(o){
return Object.prototype.toString.call(o)=='[object Array]';
}
console.log(isArray(ary));

具體Object.prototype.toString 的用法,請參照 Object.prototype.toString的用法

好了關(guān)于JavaScript判斷變量是否為數(shù)組的方法(Array)就給大家介紹這么多,今天主要給大家總結(jié)了這四種,本文寫的不好還請各位大俠多多指教,謝謝!

相關(guān)文章

  • 圖片翻轉(zhuǎn)效果具體實現(xiàn)代碼

    圖片翻轉(zhuǎn)效果具體實現(xiàn)代碼

    想必大家對圖片翻轉(zhuǎn)效果都有所了解吧,其實很容易實現(xiàn)的,下面有個不錯的示例,喜歡的朋友可以參考下
    2014-01-01
  • javascript檢測兩個數(shù)組是否相似

    javascript檢測兩個數(shù)組是否相似

    Javascript不能直接用==或者===來判斷兩個數(shù)組是否相等,無論是相等還是全等都不行,要判斷JS中的兩個數(shù)組是否相同,需要先將數(shù)組轉(zhuǎn)換為字符串,再作比較。
    2015-05-05
  • 微信小程序自定義tabbar組件

    微信小程序自定義tabbar組件

    這篇文章主要為大家詳細(xì)介紹了微信小程序自定義tabbar組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • javascript獲取元素的計算樣式

    javascript獲取元素的計算樣式

    在做html頁面開發(fā)時,經(jīng)常會使用到j(luò)s(javascript)來處理客戶端的邏輯,下面我們就來看一下,如何使用js來獲取頁面上的元素
    2019-05-05
  • JavaScript實現(xiàn)簡易放大鏡最全代碼解析(ES5)

    JavaScript實現(xiàn)簡易放大鏡最全代碼解析(ES5)

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)簡易放大鏡最全代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Locate a File Using a File Open Dialog Box

    Locate a File Using a File Open Dialog Box

    Locate a File Using a File Open Dialog Box...
    2007-06-06
  • JavaScript異步編程操作實現(xiàn)介紹

    JavaScript異步編程操作實現(xiàn)介紹

    異步(Asynchronous, async)是與同步(Synchronous, sync)相對的概念。在我們學(xué)習(xí)的傳統(tǒng)單線程編程中,程序的運行是同步的,同步不意味著所有步驟同時運行,而是指步驟在一個控制流序列中按順序執(zhí)行,而異步的概念則是不保證同步的概念
    2022-09-09
  • Javascript中浮點數(shù)相乘的一個解決方法

    Javascript中浮點數(shù)相乘的一個解決方法

    這篇文章主要介紹了Javascript中浮點數(shù)相乘的一個解決方法,需要的朋友可以參考下
    2014-06-06
  • DOM 事件的深入淺出(一)

    DOM 事件的深入淺出(一)

    本文主要介紹了不同DOM級別下的事件處理程序,同時介紹了事件冒泡和捕獲的觸發(fā)原理和方法。熟練地使用不同級別的DOM事件并且解決相應(yīng)的瀏覽器兼容性問題對我們的前端項目開發(fā)會很有幫助。
    2016-12-12
  • JavaScript遍歷實現(xiàn)DFS算法和BFS算法

    JavaScript遍歷實現(xiàn)DFS算法和BFS算法

    DFS(Depth?first?search)稱作「深度優(yōu)先遍歷」,BFS(Breadth?first?search)稱作「廣度優(yōu)先遍歷」。本文將通過JavaScript遍歷實現(xiàn)這兩種算法,需要的可以參考一下
    2023-01-01

最新評論