js基礎-12-判斷陣列和判斷物件的方法
一,判斷陣列的方法
首先需要明確的是typeof在判斷[],{},null時返回的都是 object,所以是無法判斷陣列和物件的。
1,常用的方法是:instanceof
表示式:A instanceof B
返回值:如果B函式的顯示原型物件(prototype)在A物件的原型鏈(__proto__)上,返回true,否則false
var arr=[1,2,3]
var b={}
console.log(arr instanceof Array) //true
console.log(b instanceof Object) //true
console.log(arr instanceof Object) //true 因為arr的原型鏈必然包含Object的原型物件,或者說所有物件都是Object的例項
//於是又可以引申出另一種寫法:
console.log(arr.__proto__.constructor === Array )
console.log(arr.__proto__=== Array.prototype )
所以說,它可以用來判斷是不是陣列,而判斷不了是不是物件。
但是如果存在多個全域性執行環境,就會存在多個不同版本的Array建構函式了,這種辦法就會失效,使用下一種:
2,Array.isArray(arr)
不管arr是在哪個全域性環境定義的,一旦是陣列則返回true,否則false.
Array.isArray([]) // true
Array.isArray({}) // false
二,判斷是否物件的方法
1、toString(推薦)
Object.prototype.toString.call(obj) === '[object Object]'
//Object原型物件上的toString方法是可以判斷型別的。利用call把指標指向obj,也就是呼叫這個toString方法來判斷obj
2、constructor
obj.constructor === Object
相關文章
- js:判斷物件或陣列JS物件陣列
- js資料型別判斷和陣列判斷JS資料型別陣列
- JS型別判斷、物件克隆、陣列克隆JS型別物件陣列
- js判斷一個物件是否為陣列JS物件陣列
- JavaScript判斷陣列還是物件JavaScript陣列物件
- js判斷物件的幾種方法JS物件
- JS判斷物件是否為空物件的方法JS物件
- js如何判斷物件的屬性值是物件還是陣列JS物件陣列
- js函式中的if判斷和a==b判斷JS函式
- 判斷某個陣列在不在物件裡陣列物件
- JavaScript 判斷陣列或者物件是否為空JavaScript陣列物件
- 判斷是否是陣列的幾種方法陣列
- js空物件判斷 isPlainObjectJS物件AIObject
- js如何判斷陣列是否含有指定的元素JS陣列
- js如何判斷陣列具有某個元素JS陣列
- 談談 js判斷陣列 那點事JS陣列
- 判斷陣列裡面的json 物件是否相等,相等則移除陣列JSON物件
- JavaScript 判斷是否是陣列JavaScript陣列
- javascript如何判斷一個物件是不是陣列JavaScript物件陣列
- 判斷是否為陣列的 JavaScript 方法總結陣列JavaScript
- 前端基礎——js資料型別及判斷方法前端JS資料型別
- JS的判斷語句:判斷、迴圈JS
- js判斷物件是否為空JS物件
- js如何判斷一個變數是陣列還是其他物件JS變數陣列物件
- 原生js 判斷變數是一個陣列JS變數陣列
- 記一次關於js陣列型別判斷及js型別判斷的細節探索JS陣列型別
- Javascript-判斷是否為陣列的5種方法JavaScript陣列
- PHP 判斷陣列是否為空的幾種方法PHP陣列
- JS 物件 1.型別的判斷JS物件型別
- js如何使用includes()判斷陣列是否含有指定值JS陣列
- js如何判斷陣列中是否含有某個元素JS陣列
- js如何判斷一個引數是否是陣列JS陣列
- js判斷兩個物件是否相等JS物件
- 判斷函式和方法函式
- PHP 判斷陣列是否為空的5大方法PHP陣列
- 判斷物件是否相等的方法,==與 isEqual物件
- 我想了解更多判斷陣列的方式陣列
- 判斷一個陣列是否排好序陣列