Underscore.js 經常使用類型判斷以及一些有用的工具方法

1. 經常使用類型判斷以及一些有用的工具方法

   underscore.js 中一些 JavaScript 經常使用類型檢查方法,以及一些工具類的判斷方法。javascript

   首先咱們先來談一談數組類型的判斷。先貼出我本身封裝好的函數。
java

  

  第一: 在ES5裏面有一個檢測數組的函數,就是Array.isArray(); (畢竟原生的纔是最屌的)可是若是老版本的瀏覽器不支持ES5呢。那怎麼辦 因此咱們這個時候要想其餘的辦法。
web

   來回憶下 instanceof 運算符的使用方式。a instanceof b,若是返回 true,表示 a 是 b 的一個實例。那麼若是 a instanceof Array 返回 true,是否是就說明 a 是 數組類型呢?跟 instanceof 師出同門的還有 constructor,是否一樣能夠判斷呢?數組

由於每一個 frame 都有一套本身的執行環境,跨 frame 實例化的對象彼此不共享原型鏈。若是打印 a instanceof window.frames[0].Array,那麼結果就是 true 了。
因此正確的是使用Object.prototype.toString.call
  var a = [0, 1, 2];   console.log(a instanceof Array); // true 就是數組?   console.log(a.constructor === Array); // true 數組?
(obj) === "[object Array]";有原生的ES5是最好 因此就使用第一個。

2. 對象的判斷

  underscore把function和obj都當成對象,可是要除去null。 根據typeof來返回複雜類型。瀏覽器

  

  

3. 全部的類型判斷

  再看 'Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error' 這些類型的判斷,其實均可以用 Object.prototype.toString.call 來判斷,因此寫在了一塊兒: 可是 IE9下面沒法判斷Arguments。app

  

4. 工具類判斷方法

  

1. 圖片格式

1. 圖片格式

今天就跟你們聊一聊 underscore.js 中一些 JavaScript 經常使用類型檢查方法,以及一些工具類的判斷方法。函數

相關文章
相關標籤/搜索