工作中最常用的陣列,物件型別的判斷

2022-09-11 23:09:21 字數 1270 閱讀 5237

因為無論是陣列還是物件,對於typeof的操作返回值都為object,所以就有了區分陣列型別和物件型別的需要:

*方一:通過length屬性:一般情況下物件沒有length屬性值,其值為undefiend,而陣列的length值為number型別

缺點:非常不實用,當物件的屬性存在length,且其值為number(比如類陣列),則該方法失效,不建議使用

*方二:通過instanceof來判斷區分

var arr = [1, 2, 3

];

var obj =

console.log(arr instanceof array);

//true

console.log(obj instanceof array); //

false

*方三:通過constructor

var arr = [1, 2, 3];

var obj =

console.log(arr.constructor === array); //true

console.log(obj.constructor === array); //false

*方四:通過tostring()方法,陣列原型和物件原型定義的tostring()方法不同

原理參考:

個人使用的還是這種比較多,推薦使用!

var arr = [1, 2, 3];

var obj =

console.log(object.prototype.tostring.call(arr) === '[object array]'); //true

console.log(object.prototype.tostring.call(boj) === '[object array]'); //false

方五:隨便找乙個陣列僅有的方法,來判斷陣列和物件誰有該方法即可(樣例以sort來舉例)

var arr = [1, 2, 3];

var obj =

console.log(arr.sort === array.prototype.sort); //true

console.log(obj.sort === array.prototype.sort); //false

總結:方法應用權重:

優先使用方四tostring,因為該方法幾乎無缺陷。

次之可以使用方二instanceof和方三constructor

工作中最全最常用的正規表示式

文章轉至 在雷雪松個人部落格前面的文章中介紹過什麼是正規表示式,正規表示式就是用於描述這些規則的語法,通過正規表示式我們可以匹配資料,校驗資料,處理資料。今天呢,主要分享前端開發中總結的常用的正規表示式。1 數字相關的正規表示式 數字 0 9 n位定長的數字 d m n位之間的數字 d 零和非零開頭...

工作中最全最常用的正規表示式

1 數字相關的正規表示式 數字 0 9 n位定長的數字 d m n位之間的數字 d 零和非零開頭的數字 0 1 9 0 9 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 帶1 2位小數的正數或負數 d d 正數 負數 和小數 d d 有兩位小數的正實數 0 9 0 9 有1 3位小數的正實...

工作中最全最常用的正規表示式

1 數字相關的正規表示式 數字 0 9 n位定長的數字 d m n位之間的數字 d 零和非零開頭的數字 0 1 9 0 9 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 帶1 2位小數的正數或負數 d d 正數 負數 和小數 d d 有兩位小數的正實數 0 9 0 9 有1 3位小數的正實...