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

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

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

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

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

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

上面的辦法并不能實(shí)時(shí)的檢測出是否是數(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ù)組,不要高興的太早,大家先想想這個(gè)的缺點(diǎn),我們接著說第三種方法

3.原型鏈方法

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

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

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

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

原因:

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

2、每個(gè)頁面的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)文章

  • javascript中in運(yùn)算符用法分析

    javascript中in運(yùn)算符用法分析

    這篇文章主要介紹了javascript中in運(yùn)算符用法,實(shí)例分析了in運(yùn)算符的相關(guān)使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 解決layui數(shù)據(jù)表格排序圖標(biāo)被超出的表頭擠出去的問題

    解決layui數(shù)據(jù)表格排序圖標(biāo)被超出的表頭擠出去的問題

    今天小編就為大家分享一篇解決layui數(shù)據(jù)表格排序圖標(biāo)被超出的表頭擠出去的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 使用JavaScript觸發(fā)過渡效果的方法

    使用JavaScript觸發(fā)過渡效果的方法

    hover 和 :focus 這樣的偽類,我們可以很方便的將元素從一個(gè)樣式切換到另一個(gè)樣式,而且切換是會(huì)有過渡效果。但有時(shí)我們想要使用 js 來驅(qū)動(dòng)過渡(即在代碼中觸發(fā)過渡)也是可以實(shí)現(xiàn)的,下面通過本文給大家介紹下
    2017-01-01
  • JavaScript 數(shù)組的深度復(fù)制解析

    JavaScript 數(shù)組的深度復(fù)制解析

    一般情況下,使用 “=” 可以實(shí)現(xiàn)賦值。但對于數(shù)組、對象、函數(shù)等這些引用類型的數(shù)據(jù),這個(gè)符號(hào)就不好使了。這篇文章主要介紹了JavaScript 數(shù)組的深度復(fù)制解析的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • javascript獲取設(shè)置div的高度和寬度兼容任何瀏覽器

    javascript獲取設(shè)置div的高度和寬度兼容任何瀏覽器

    Javascript如何獲取和設(shè)置div的高度和寬度,并且兼容任何瀏覽器,感興趣的朋友不妨看看下面的代碼或許有意想不到的收獲
    2013-09-09
  • js鼠標(biāo)單擊和雙擊事件沖突問題的快速解決方法

    js鼠標(biāo)單擊和雙擊事件沖突問題的快速解決方法

    下面小編就為大家?guī)硪黄猨s鼠標(biāo)單擊和雙擊事件沖突問題的快速解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • JS實(shí)現(xiàn)輪播圖小案例

    JS實(shí)現(xiàn)輪播圖小案例

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)輪播圖小案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 通過V8源碼看一個(gè)關(guān)于JS數(shù)組排序的詭異問題

    通過V8源碼看一個(gè)關(guān)于JS數(shù)組排序的詭異問題

    一直在學(xué)習(xí)C++,也想閱讀點(diǎn)開源的C++項(xiàng)目,發(fā)現(xiàn)網(wǎng)上對Google V8評價(jià)不錯(cuò),于是上Github上找到了源代碼,但在學(xué)習(xí)中遇到一個(gè)js數(shù)組排序的問題,下面這篇文章主要給大家介紹了通過V8源碼說說一個(gè)關(guān)于JS數(shù)組排序的詭異問題的相關(guān)資料,需要的朋友可以參考下。
    2017-08-08
  • smartcrop.js智能圖片裁剪庫

    smartcrop.js智能圖片裁剪庫

    為了測試這個(gè)智能識(shí)別插件,我試了很多壁紙圖片,都能智能裁剪出圖片的主體部分,轉(zhuǎn)而嘗試了一下chrome和Firefox以及IE,發(fā)現(xiàn)IE只有10以上的版本才支持,chrome和Firefox支持,手機(jī)瀏覽器不支持,這到底是啥黑科技??今天我們就來詳細(xì)看看
    2015-10-10
  • JS模擬自動(dòng)點(diǎn)擊的簡單實(shí)例

    JS模擬自動(dòng)點(diǎn)擊的簡單實(shí)例

    這篇文章介紹了JS模擬自動(dòng)點(diǎn)擊的簡單實(shí)例,有需要的朋友可以參考一下
    2013-08-08

最新評論

兰溪市| 新民市| 翁牛特旗| 木里| 凤城市| 巴南区| 湖口县| 仙居县| 北川| 汶上县| 平泉县| 宣恩县| 乌兰浩特市| 梅河口市| 霞浦县| 镇安县| 新巴尔虎右旗| 保德县| 攀枝花市| 霍山县| 辰溪县| 蒲江县| 吕梁市| 大姚县| 银川市| 嘉荫县| 罗山县| 邵阳市| 万州区| 深州市| 化德县| 巴南区| 宁蒗| 沙雅县| 杂多县| 商南县| 黄石市| 丽水市| 青川县| 托克逊县| 凤冈县|