1. 程式人生 > >JS的數據類型判斷函數、數組對象結構處理、日期轉換函數,瀏覽器類型判斷函數合集

JS的數據類型判斷函數、數組對象結構處理、日期轉換函數,瀏覽器類型判斷函數合集

-i size 數據 parse 並集 lte 全局 shel undefined

工具地址:https://github.com/BothEyes1993/bes-jstools

bes-jstools

100多個基礎常用JS函數和各種數據轉換處理集合大全,此工具包是在 outils 的基礎上,加上個人平時收集的代碼片段進行的二次整合

Browser Support

技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片
7+ ? Latest ? Latest ? Latest ? Latest ? 6.1+ ?

Installing

npm install bes-jstools --save

Using nodejs

const BesUtils = require('bes-jstools')

Get on unpkg

<script src="https://unpkg.com/[email protected]/dist/bes-utils.min.js"></script>

ES6 Module import

import BesUtils from 'bes-jstools'

API

  • 基礎函數
    • isNaN (val) 判斷是否非數值
    • isFinite (val) 判斷是否為有限數值
    • isUndefined (val) 判斷 Undefined
    • isArray (val) 判斷是否數組
    • isFloat (val) 判斷是否小數
    • isInteger (val) 判斷是否整數
    • isBoolean (val) 判斷是否 Boolean 對象
    • isString (val) 判斷是否 String 對象
    • isNumber (val) 判斷是否 Number 對象
    • isRegExp (val) 判斷是否 RegExp 對象
    • isObject (val) 判斷是否 Object 對象
    • isPlainObject (val) 判斷是否是一個對象
    • isDate (val) 判斷是否 Date 對象
    • isError (val) 判斷是否 Error 對象
    • isTypeError (val) 判斷是否 TypeError 對象
    • isEmpty (val) 判斷是否為空,包括空對象、空數值、空字符串
    • isNull (val) 判斷是否為 Null
    • isSymbol (val) 判斷是否 Symbol 對象
    • isArguments (val) 判斷是否 Arguments 對象
    • isElement (val) 判斷是否 Element 對象
    • isDocument (val) 判斷是否 Document 對象
    • isWindow (val) 判斷是否 Window 對象
    • isFormData (val) 判斷是否 FormData 對象
    • isMap (val) 判斷是否 Map 對象
    • isWeakMap (val) 判斷是否 WeakMap 對象
    • isSet (val) 判斷是否 Set 對象
    • isWeakSet (val) 判斷是否 WeakSet 對象
    • isLeapYear (date) 判斷是否閏年
    • isMatch (obj, source) 判斷屬性中的鍵和值是否包含在對象中
    • isEqual (obj1, obj2) 深度比較兩個對象之間的值是否相等
    • isEqualWith (obj1, obj2, func) 深度比較兩個對象之間的值是否相等,使用自定義比較函數
    • isDateSame (date1, date2, format) 判斷兩個日期是否相同
  • 常用函數
    • toNumber ( num ) 轉數值
    • toInteger ( num ) 轉整數
    • toFixedNumber ( num, digits ) 和 Number.toFixed 類似,區別就是不會對小數進行四舍五入,結果返回數值
    • toFixedString ( num, digits ) 和 Number.toFixed 類似,區別就是不會對小數進行四舍五入,結果返回字符串
    • toArray ( array ) 將對象或者偽數組轉為新數組
    • toStringJSON (str) 字符串轉 JSON
    • toJSONString (obj) JSON 轉字符串
    • getType (obj) 獲取對象類型
    • getSize ( obj ) 返回對象的長度
    • uniqueId ( prefix ) 獲取一個全局唯一標識
    • uniq ( array ) 數組去重
    • union ( ...array ) 將多個數的值返回唯一的並集數組
    • random ( min, max ) 獲取一個指定範圍內隨機數
    • range ( start, stop, step ) 序號列表生成函數
    • clear (obj[, defs, assigns]) 清空對象; defs如果不傳(清空所有屬性)、如果傳對象(清空並繼承)、如果傳值(給所有賦值)
    • remove (obj, iteratee) 移除對象屬性
    • assign (destination, ...sources) 淺拷貝一個或者多個對象到目標對象中,如果第一值是true,則使用深拷貝
    • clone (obj, deep) 淺拷貝/深拷貝
    • destructuring (obj, ...target) 將一個或者多個對象值解構到目標對象
    • trim ( str ) 去除字符串左右兩邊的空格
    • trimLeft ( str ) 去除字符串左邊的空格
    • trimRight ( str ) 去除字符串右邊的空格
    • escape ( str ) 轉義HTML字符串,替換&, <, >, ", ‘, `字符
    • unescape ( str ) 反轉 escape
    • camelCase ( str ) 將帶駝峰字符串轉成字符串
    • kebabCase ( str ) 將字符串轉成駝峰字符串
    • repeat ( str, count ) 將字符串重復 n 次
    • padStart ( str, targetLength, padString ) 用指定字符從前面開始補全字符串
    • padEnd ( str, targetLength [, padString] ) 用指定字符從後面開始補全字符串
    • startsWith ( str, val [, startIndex] ) 判斷字符串是否在源字符串的頭部
    • endsWith ( str, val [, startIndex] ) 判斷字符串是否在源字符串的尾部
    • slice ( array, start, end ) 裁剪 Arguments 或數組 array,從 start 位置開始到 end 結束,但不包括 end 本身的位置
    • indexOf (obj, val) 返回對象第一個索引值
    • findIndexOf (obj, iteratee [, context]) 返回對象第一個索引值
    • lastIndexOf (obj, val) 從最後開始的索引值,返回對象第一個索引值
    • findLastIndexOf (obj, iteratee [, context]) 從最後開始的索引值,返回對象第一個索引值
    • includes (obj, val) 判斷對象是否包含該值,成功返回 true 否則 false
    • includeArrays (array1, array2) 判斷數組是否包含另一數組
    • each ( obj, iteratee [, context] ) 通用叠代器
    • arrayEach ( obj, iteratee [, context] ) 數組叠代器
    • objectEach ( obj, iteratee [, context] ) 對象叠代器
    • lastEach ( obj, iteratee [, context] ) 通用叠代器,從最後開始叠代
    • lastArrayEach ( obj, iteratee [, context] ) 數組叠代器,從最後開始叠代
    • lastObjectEach ( obj, iteratee [, context] ) 對象叠代器,從最後開始叠代
    • lastForOf ( obj, iteratee [, context] ) 通用叠代器,從最後開始叠代,支持 return false 跳出循環 break
    • has (obj, property) 檢查鍵、路徑是否是該對象的屬性
    • get (obj, property, defaultValue) 獲取對象的屬性的值,如果值為 undefined,則返回默認值
    • set ( obj, property, value ) 設置對象屬性上的值。如果屬性不存在則創建它
    • keys (obj) 獲取對象所有屬性
    • values (obj) 獲取對象所有值
    • entries (obj) 獲取對象所有屬性、值
    • first (obj) 獲取對象第一個值
    • last (obj) 獲取對象最後一個值
    • groupBy ( obj, iteratee [, context] ) 集合分組,默認使用鍵值分組,如果有 iteratee 則使用結果進行分組
    • countBy ( obj, iteratee [, context] ) 集合分組統計,返回各組中對象的數量統計
    • sortBy ( arr, iteratee [, context] ) 數組按屬性值升序
    • shuffle ( array ) 將一個數組隨機打亂,返回一個新的數組
    • sample ( array, number ) 從一個數組中隨機返回幾個元素
    • some ( obj, iteratee [, context] ) 對象中的值中的每一項運行給定函數,如果函數對任一項返回 true,則返回 true,否則返回 false
    • every ( obj, iteratee [, context] ) 對象中的值中的每一項運行給定函數,如果該函數對每一項都返回 true,則返回 true,否則返回 false
    • filter ( obj, iteratee [, context] ) 根據回調過濾數據
    • find ( obj, iteratee [, context] ) 查找匹配第一條數據
    • findKey ( obj, iteratee [, context] ) 查找匹配第一條數據的鍵
    • map ( obj, iteratee [, context] ) 指定方法後的返回值組成的新數組
    • objectMap ( obj, iteratee [, context] ) 指定方法後的返回值組成的新對象
    • zipObject ( props, values ) 根據鍵數組、值數組對轉換為對象
    • pick (obj, array) 根據 keys 過濾指定的屬性值 或者 接收一個判斷函數,返回一個新的對象
    • omit (obj, array) 根據 keys 排除指定的屬性值 或者 接收一個判斷函數,返回一個新的對象
    • copyWithin ( array, target, start [, end] ) 淺復制數組的一部分到同一數組中的另一個位置,數組大小不變
    • sum ( obj, iteratee [, context] ) 求和函數,將數值相加
    • mean ( obj, iteratee [, context] ) 求平均值函數
    • reduce ( array, iteratee [, initialValue] ) 接收一個函數作為累加器,數組中的每個值(從左到右)開始合並,最終為一個值
    • chunk ( array, size ) 將一個數組分割成大小的組。如果數組不能被平均分配,那麽最後一塊將是剩下的元素
    • min ( arrb[, iteratee] ) 獲取最小值
    • max ( arr [, iteratee] ) 獲取最大值
    • commafy ( num [, options] ) 數值千分位分隔符、小數點
  • 日期函數
    • now ( ) 返回當前時間戳
    • timestamp ( date[, format] ) 將日期轉為時間戳
    • toStringDate ( str, format ) 任意格式字符串轉為日期
    • toDateString ( date [, format, options] ) 日期格式化為任意格式字符串
    • getWhatYear ( date, year [, month] ) 返回前幾年或後幾年的日期,可以指定年的最初時間(first)、年的最後時間(last)、年的月份(0~11),默認當前
    • getWhatMonth ( date, month [, day] ) 返回前幾月或後幾月的日期,可以指定月初(first)、月末(last)、天數,默認當前
    • getWhatWeek ( date, week [, day] ) 返回前幾周或後幾周的日期,可以指定星期幾(0~6),默認當前
    • getWhatDay ( date, day [, mode] ) 返回前幾天或後幾天的日期,可以指定當天最初時間(first)、當天的最後時間(last)
    • getDayOfYear ( date [, year] ) 返回某個年份的天數,可以指定前幾個年或後幾個年,默認當前
    • getYearDay ( date ) 返回某個年份的第幾天
    • getYearWeek ( date ) 返回某個年份的第幾周
    • getMonthWeek ( date ) 返回某個月份的第幾周
    • getDayOfMonth ( date [, month] ) 返回某個月份的天數,可以指定前幾個月或後幾個月,默認當前
    • getDateDiff ( startDate, endDate [, rules] ) 返回兩個日期之間差距,如果結束日期小於開始日期 done 為 fasle
  • 高級函數
    • toArrayTree ( array, options ) 一個高性能的樹結構轉換函數,將一個帶層級的數據列表轉成樹結構
    • toTreeArray ( array, options ) 將一個樹結構轉成數組列表
    • findTree ( obj, iterate[, options, context] ) 從樹結構中查找匹配第一條數據的鍵、值、路徑
    • eachTree ( obj, iterate[, options, context] ) 從樹結構中遍歷數據的鍵、值、路徑
    • mapTree ( obj, iterate[, options, context] ) 從樹結構中指定方法後的返回值組成的新數組
    • filterTree ( obj, iterate[, options, context] ) 從樹結構中根據回調過濾數據
    • property ( path ) 返回一個獲取對象屬性的函數
    • pluck ( array, key ) 獲取數組對象中某屬性值,返回一個數組
    • invoke ( list, path, ...arguments ) 在list的每個元素上執行方法,任何傳遞的額外參數都會在調用方法的時候傳遞給它
    • zip ( ) 將每個數組中相應位置的值合並在一起
    • unzip ( arrays ) 與 zip 相反
    • delay (callback, wait[, ...arguments]) 該方法和 setTimeout 一樣的效果,區別就是支持額外參數
    • bind (callback, context[, ...arguments]) 創建一個綁定上下文的函數
    • once (callback, context[, ...arguments]) 創建一個只能調用一次的函數,只會返回第一次執行後的結果
    • after (count, callback, context) 創建一個函數, 調用次數超過 count 次之後執行回調並將所有結果記住後返回
    • before (count, callback, context) 創建一個函數, 調用次數不超過 count 次之前執行回調並將所有結果記住後返回
    • throttle (callback, wait[, options]) 創建一個策略函數,當被重復調用函數的時候,至少每隔多少秒毫秒調用一次該函數
    • debounce (callback, wait[, options]) 創建一個防反跳策略函數,在函數最後一次調用多少毫秒之後才會再次執行,如果在期間內重復調用會重新計算延遲
  • 瀏覽器函數
    • serialize ( query ) 序列化查詢參數
    • unserialize ( str ) 反轉序列化查詢參數
    • browse ( ) 獲取瀏覽器信息
    • locat ( ) 獲取地址欄信息
    • parseUrl ( url ) 解析 URL 參數
    • getBaseURL ( ) 獲取上下文路徑
    • cookie ( name, value, options ) Cookie 操作函數

JS的數據類型判斷函數、數組對象結構處理、日期轉換函數,瀏覽器類型判斷函數合集