簡單介紹三個判斷陣列的方法的區別和優劣

2021-09-11 20:47:37 字數 1428 閱讀 6736

這三個方法如下:

object.prototype.tostring.call() 、 instanceof 以及 array.isarray()
解析:

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()

寫的很好,對於我這樣的前端小白來說很有意義,基礎牢了,房子才能蓋得更高。

出處: 第21題

android View的三個構造方法 簡單總結

在android開發中,我們經常會涉及到自定義view,view有3個構造方法 可能以後會更多 如下 public circleview context context public circleview context context,attributeset attrs public circl...

三個簡單的排序

氣泡排序 從第乙個元素開始,和它右邊的哪個元素比較,如果它比右邊的哪個元素大的話,就交換位置,經過第一次後,最右邊的那個元素,就是最大的哪個元素.第二次同樣,從第一元素開始,但是比較到倒數第二個元素,這樣右邊第二個元素就是第二高的元素.依次這樣下去,每次比較的結束值就是,比上一次小乙個,直到結束的標...

Git提交檔案到三個區的實現方法

大致介nymrvpberg紹 年過的差不多了,開始學習!git有三個工作區域 工作區 working directory nymrvpberg暫存區 stage 版本庫 repository 工作區 worki程式設計客棧ng directory 簡單理解就是需要進行版本的某個資料夾,例如之前例子中...