因為無論是陣列還是物件,對於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];*方四:通過tostring()方法,陣列原型和物件原型定義的tostring()方法不同var obj =
console.log(arr.constructor === array); //true
console.log(obj.constructor === array); //false
原理參考:
個人使用的還是這種比較多,推薦使用!
var arr = [1, 2, 3];方五:隨便找乙個陣列僅有的方法,來判斷陣列和物件誰有該方法即可(樣例以sort來舉例)var obj =
console.log(object.prototype.tostring.call(arr) === '[object array]'); //true
console.log(object.prototype.tostring.call(boj) === '[object array]'); //false
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位小數的正實...