JS 3 個判斷陣列的方法

2021-09-27 08:47:17 字數 1262 閱讀 5172

1. object.prototype.tostring.call()

const an = ['hello','an'];

an.tostring(); // "hello,an"

object.prototype.tostring.call(an); // "[object array]"

這種方法對於所有基本的資料型別都能進行判斷,即使是 null 和 undefined 。

object.prototype.tostring.call('an') // "[object string]"

object.prototype.tostring.call(1) // "[object number]"

object.prototype.tostring.call(symbol(1)) // "[object symbol]"

object.prototype.tostring.call(null) // "[object null]"

object.prototype.tostring.call(undefined) // "[object undefined]"

object.prototype.tostring.call(function(){}) // "[object function]"

object.prototype.tostring.call() // "[object object]"

object.prototype.tostring.call()常用於判斷瀏覽器內建物件時。

2. instanceof

instanceof的內部機制是通過判斷物件的原型鏈中是不是能找到型別的prototype

使用instanceof判斷乙個物件是否為陣列,instanceof會判斷這個物件的原型鏈上是否會找到對應的array的原型,找到返回true,否則返回false

instanceof array; // true
instanceof只能用來判斷物件型別,原始型別不可以。並且所有物件型別 instanceof object 都是 true。

instanceof object; // true
3. array.isarray()

js 3種遍歷物件的方法

一 遍歷物件方法 1.for.in 遍歷輸出的是物件自身的屬性以及原型鏈上可列舉的屬性 不含symbol屬性 原型鏈上的屬性最後輸出說明先遍歷的是自身的可列舉屬性,後遍歷原型鏈上的 eg var obj object.prototype.pro1 function 在原型鏈上新增屬性 object....

JS陣列判斷,方法

怎麼判斷乙個物件是不是陣列?首先可以用 es5 提供的 isarray 方法進行判斷 注意 array.isarray是es 5.1推出的,不支援ie6 8,所以在使用的時候也應注意相容問題。可以使用 instanceof array 來判斷,不過這種方式存在問題,比如當存在多個全域性物件 如使用i...

js中判斷陣列的方法

首先宣告乙個陣列var arr js中typeof只能檢測簡單資料型別 如果typeof arr,會返回object,顯然不能判斷到底是不是乙個陣列 那麼js中用什麼方法檢測陣列呢?方法1 isarray 方法 array.isarray arr 但是這個方法有相容性 ie瀏覽器只有ie9以上才支援...