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物件
- 寫個方法判斷陣列物件中是否存在某個物件陣列物件
- js函式中的if判斷和a==b判斷JS函式
- 判斷某個陣列在不在物件裡陣列物件
- js空物件判斷 isPlainObjectJS物件AIObject
- 判斷是否是陣列的幾種方法陣列
- 判斷是否為陣列的 JavaScript 方法總結陣列JavaScript
- js判斷物件是否為空JS物件
- JavaScript 判斷是否是陣列JavaScript陣列
- 前端基礎——js資料型別及判斷方法前端JS資料型別
- JS的判斷語句:判斷、迴圈JS
- 原生js 判斷變數是一個陣列JS變數陣列
- 記一次關於js陣列型別判斷及js型別判斷的細節探索JS陣列型別
- Javascript-判斷是否為陣列的5種方法JavaScript陣列
- js判斷兩個物件是否相等JS物件
- js如何使用includes()判斷陣列是否含有指定值JS陣列
- 判斷陣列裡面的json 物件是否相等,相等則移除陣列JSON物件
- Python 基礎 - if else流程判斷Python
- 我想了解更多判斷陣列的方式陣列
- 判斷一個陣列是否排好序陣列
- Javascript判斷空物件JavaScript物件
- golang中判斷兩個slice是否相等與判斷值下的 陣列是否相等Golang陣列
- getDate方法的妙用(js判斷閏年)JS
- 怎麼判斷dns汙染,怎麼判斷dns汙染,具體判斷方法DNS
- 原型判斷方法原型
- MyBatis陣列與集合判斷非空和長度MyBatis陣列
- js判斷型別JS型別
- js判斷時間JS
- JS 型別判斷JS型別
- 如何判斷股票有沒有主力?主力的判斷方法
- 寫一個方法判斷陣列內元素是否全部相同陣列
- 判斷一個物件為空物件的5種方法物件
- 多個陣列,判斷從屬關係陣列
- Array · 判斷某元素是否在陣列中陣列
- js判斷true和false一覽JSFalse