溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS如何判斷數組

發布時間:2021-08-10 15:06:39 來源:億速云 閱讀:193 作者:小新 欄目:web開發

這篇文章主要為大家展示了“JS如何判斷數組”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“JS如何判斷數組”這篇文章吧。

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如何判斷數組”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女