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

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

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

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

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

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

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

2.instanceof 判斷

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

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

3.原型鏈方法

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

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

總結一下第2種方法和第3種方法局限性

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

原因:

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

2、每個頁面的Array原生對象所引用的地址是不一樣的,在子頁面聲明的array,所對應的構造函數,是子頁面的Array對象;父頁面來進行判斷,使用的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的用法

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

相關文章

  • 圖片翻轉效果具體實現代碼

    圖片翻轉效果具體實現代碼

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

    javascript檢測兩個數組是否相似

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

    微信小程序自定義tabbar組件

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

    javascript獲取元素的計算樣式

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

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

    這篇文章主要為大家詳細介紹了JavaScript實現簡易放大鏡最全代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    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異步編程操作實現介紹

    JavaScript異步編程操作實現介紹

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

    Javascript中浮點數相乘的一個解決方法

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

    DOM 事件的深入淺出(一)

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

    JavaScript遍歷實現DFS算法和BFS算法

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

最新評論