數(shù)組判斷方法整理


1.instanceof

  • 使用方法: arr instanceof Array //return true or false
  • instanceof的原理是檢查原型鏈义矛,所以只能用于對象,不能用于基本類型。但對基本包裝類型(Number、Boolean奥喻、String類型)岳锁,因為其本質(zhì)是引用類型,故能夠用instanceof來判斷卒暂。
  • 缺點:instanceof假定只有一個全局環(huán)境,如果網(wǎng)頁中包含多個框架榨咐,那實際上就存在多個不同的全局執(zhí)行環(huán)境介却,從而存在兩個以上不同版本的Array構(gòu)造函數(shù)。如果你從一個框架向另一個框架傳入一個數(shù)組块茁,那么傳入的數(shù)組與在第二個框架中原生創(chuàng)建的數(shù)組分別具有各自不同的構(gòu)造函數(shù)齿坷。使用instanceof會返回false。

2.constructor屬性

  • 使用方法:arr.constructor === Array //return true or false
  • constructor是prototype對象的一個屬性数焊,默認(rèn)指向prototype對象所在的構(gòu)造函數(shù)永淌。constructor屬性的作用,是分辨原型對象到底屬于哪個構(gòu)造函數(shù)佩耳。
  • 缺點:同instanceof一樣遂蛀,在不同的全局執(zhí)行環(huán)境下,實例化的對象彼此不共享原型鏈干厚,故使用constructor會返回false李滴。

3.isArray

  • 使用方法: Array.isArray(value) //return true or false
  • ECMAScript5新增,解決了在不同全局執(zhí)行環(huán)境創(chuàng)建的問題蛮瞄。
  • 支持Array.isArray()方法的瀏覽器有IE9+所坯、Firefox 4+、Safari 5+挂捅、Opera 10.5+和Chrome芹助。

4.Object.prototype.toString

  • 使用方法:Object.prototype.toString.call(arr) == "[object Array]" //return true or false
  • 在任何值上調(diào)用Object原生的toString()方法,都會返回一個[object NativeConstructorName]格式的字符串闲先。每個類在內(nèi)部都有一個[[class]]屬性([[]]用來表示語言內(nèi)部用到的状土、外部不可直接訪問的屬性,稱為“內(nèi)部屬性”)伺糠,這個屬性中就指定了上訴字符串中的構(gòu)造函數(shù)名蒙谓。
  • 利用這個方法,再配合call退盯,我們可以取得任何對象的內(nèi)部屬性[[Class]]彼乌,然后把檢測類型轉(zhuǎn)化為字符串進(jìn)行比較泻肯。
  • 因為.toString()方法可能會被改寫,使用prototype上的toString()方法更加具有安全性慰照。
  • 這種方法在識別內(nèi)置對象時往往十分有用灶挟,但對于自定義對象請不要使用這種方法。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末毒租,一起剝皮案震驚了整個濱河市稚铣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌墅垮,老刑警劉巖惕医,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異算色,居然都是意外死亡抬伺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門灾梦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來峡钓,“玉大人,你說我怎么就攤上這事若河∧苎遥” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵萧福,是天一觀的道長拉鹃。 經(jīng)常有香客問我,道長鲫忍,這世上最難降的妖魔是什么膏燕? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮悟民,結(jié)果婚禮上煌寇,老公的妹妹穿的比我還像新娘。我一直安慰自己逾雄,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布腻脏。 她就那樣靜靜地躺著鸦泳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪永品。 梳的紋絲不亂的頭發(fā)上做鹰,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機(jī)與錄音鼎姐,去河邊找鬼钾麸。 笑死更振,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的饭尝。 我是一名探鬼主播肯腕,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼钥平!你這毒婦竟也來了实撒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤涉瘾,失蹤者是張志新(化名)和其女友劉穎知态,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體立叛,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡负敏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了秘蛇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片其做。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖彤叉,靈堂內(nèi)的尸體忽然破棺而出庶柿,到底是詐尸還是另有隱情,我是刑警寧澤秽浇,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布浮庐,位于F島的核電站,受9級特大地震影響柬焕,放射性物質(zhì)發(fā)生泄漏审残。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一斑举、第九天 我趴在偏房一處隱蔽的房頂上張望搅轿。 院中可真熱鬧,春花似錦富玷、人聲如沸璧坟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雀鹃。三九已至,卻和暖如春励两,著一層夾襖步出監(jiān)牢的瞬間黎茎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工当悔, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留傅瞻,地道東北人踢代。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像嗅骄,于是被迫代替她去往敵國和親胳挎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容