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

JS判斷數組那點事

 更新時間:2017年10月10日 14:29:44   投稿:mrr  
在面試過程中經常被面試官問到這樣的題目:如何判斷數組?下面小編就針對這個問題給大家收集整理了份資料,感興趣的朋友一起看看吧

面試題中有個這樣題目 如何判斷數組 大家都知道哪些方法

其實有時候 明明知道哪些方法 但在關鍵時候就是說不上來

typeof運算符

typeof會返回這個類型的字符串

 var a = '123'
 console.log(typeof(a)) //string
 var b = []
 console.log(typeof(b)) //object
 var c = {}
 console.log(typeof(c)) //object
 var d = null
 console.log(typeof(d)) //object

上述看到 數組 對象 null 用typeof返回都是object 這種方法不能識別出是否為數組

原型contructor鏈方法

實例化有一個contructor屬性 這個屬性指向生成對象 數組的方法

 var a = []
 console.log(a.__proto__.constructor) //ƒ Array() { [native code] }
 var b = {}
 console.log(b.__proto__.constructor) //ƒ Object() { [native code] }

上述看到 數組是由Array函數實例化的 對象由Object函數實例化來得

感覺這種方法是可以了 但是 constructor這個屬性是可以被改寫的

  var a = []
  a.__proto__.constructor = Object
  console.log(a.__proto__.constructor) //ƒ Object() { [native code] }

可以看到 這個是 變成了數組判斷成了對象 所以這個方法也不是最好的

instanceof

這個方法是判斷某個構造函數的prototype屬性所指向的對象是否在另外一個要檢測對象的原型鏈上

  var a = []
  console.log(a instanceof Array) //a對象的原型鏈上能找到Array true
  console.log(a instanceof Object) //true 原型鏈上也能找到對象

上述這種也不是特別好 判斷不出是數組還是對象

通用的方法 toString

toString() 方法返回放映這個對象的字符串

  var a= '123'
  console.log(a.toString()) //123
  var b = [1,2,3]
  console.log(b.toSting()) //1,2,3
  var c = {}
  console.log(c.toString)) //[object Object]

可以看到只有對象返回對象類型

返回[object type] type代表對象的類型

判斷對象用Object的toString的方法拿過來用

 var a =[]
 Object.prototype.toString.call(a) //[object Array]

這個對象 toString方法是可以判斷出是否為數組

但是這里注意下有個情況就是對象原型上toString() 也是可以更改的

Array.isArray(XX)

個人感覺還是使用通用方法 toString() 方法靠譜

總結

以上所述是小編給大家介紹的JS判斷數組那點事,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • js處理層級數據結構的方法小結

    js處理層級數據結構的方法小結

    本文主要介紹了js處理層級數據結構的方法。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • JavaScript eval()函數定義及使用方法詳解

    JavaScript eval()函數定義及使用方法詳解

    這篇文章主要介紹了JavaScript eval()函數定義及使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 帶領大家學習javascript基礎篇(一)之基本概念

    帶領大家學習javascript基礎篇(一)之基本概念

    這篇文章主要介紹了帶領大家學習javascript基礎篇(一)之基本概念的相關資料,需要的朋友可以參考下
    2015-11-11
  • 微信小程序實現倒計時60s獲取驗證碼

    微信小程序實現倒計時60s獲取驗證碼

    這篇文章主要為大家詳細介紹了微信小程序實現倒計時60s獲取驗證碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Js實現累加上漂浮動畫示例

    Js實現累加上漂浮動畫示例

    這篇文章主要為大家介紹了Js實現累加上漂浮動畫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 前端判斷對象為空的6種方法舉例

    前端判斷對象為空的6種方法舉例

    在前端中可以使用多種方法來判斷一個對象是否為空,這篇文章主要給大家介紹了關于前端判斷對象為空的6種方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-05-05
  • JS利用Canvas實現文字水印和圖片水印合成

    JS利用Canvas實現文字水印和圖片水印合成

    這篇文章主要為大家詳細介紹了JavaScript如何利用Canvas實現文字水印和圖片水印合成的效果,文中的示例代碼講解詳細,需要的小伙伴可以參考一下
    2022-11-11
  • javascript中類型判斷的最佳方式

    javascript中類型判斷的最佳方式

    這篇文章介紹了javascript中類型判斷的最佳方式,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Bootstrap開發(fā)實戰(zhàn)之第一次接觸Bootstrap

    Bootstrap開發(fā)實戰(zhàn)之第一次接觸Bootstrap

    Bootstrap開發(fā)實戰(zhàn)之第一次接觸Bootstrap,想要學好一門語言,首先應該進行深入了解,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 原生JS實現翻書特效

    原生JS實現翻書特效

    這篇文章主要為大家詳細介紹了原生JS實現翻書特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評論