首頁  >  文章  >  web前端  >  JavaScript判斷變數是物件還是陣列的方法介紹

JavaScript判斷變數是物件還是陣列的方法介紹

巴扎黑
巴扎黑原創
2017-07-18 17:02:101310瀏覽
  1.   因為無論是數組還是對象,對於typeof的操作返回值都為object,所以就有了區分數組類型和對象類型的需要:

  2. #方一:透過length屬性:一般情況下物件沒有length屬性值,其值為undefiend,而陣列的length值為number類型

  3.   缺點:非常不實用,當對象的屬性存在length,且其值為number(例如類別數組),則方法失效,不建議使用,看看即可。

  4. *方二:透過instanceof來判斷區分

  5. #1.instanceof 

var arr = [1, 2, 3];
var obj = {
    name: 'lyl',
    age: 18,
    l: 'name'
}
console.log(arr instanceof Array); //true
console.log(obj instanceof Array) ; //false
 

2.constructor

 
#var arr = [1, 2, 3];
var obj = {
    name: 'lyl',
    age: 18,
    1: 'name'
}
console.log(arr.constructor = == Array); //true
console.log(obj.constructor === Array); //false
 

3.Object.prototype.toString()

 
var arr = [1, 2, 3];
var obj = {
    name: 'lyl',
    age: 18,
    1: 'name'
##}
console.log(Object.prototype.toString.call(arr) === '[object Array]'); / /true
console.log(Object.prototype.toString.call(boj) === '[object Array]'); //false
 
#4.陣列僅有的方法(如:sort,pop等)

 

var arr = [1, 2, 3];
var obj = {
    name: 'lyl ',
    age: 18,
    1: 'name'
}
console.log(arr.sort === Array.prototype.sort); //true
console.log(obj.sort === Array.prototype.sort); //false
#

以上是JavaScript判斷變數是物件還是陣列的方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn