50+常用工具函數(shù)之xijs更新日志(v1.2.4)
xijs 是一款開箱即用的 js 業(yè)務(wù)工具庫, 聚集于解決業(yè)務(wù)中遇到的常用函數(shù)邏輯問題, 幫助開發(fā)者更高效的開展業(yè)務(wù)開發(fā)。
接下來就和大家一起分享一下v1.2.4 版本的更新內(nèi)容以及后續(xù)的更新方向。
1. dom分類添加xss函數(shù)
該模塊主要由 Kevin 貢獻(xiàn), 具體介紹如下:
使用方式:
import { xss } from 'xijs';
let html = '<a href="#">Me & you</a>'
console.log(xss(html))
html = '<a href="javascipt: 0">Me & you</a>'
console.log(xss(html))
2、dom分類添加基于文本, url, 下載文件功能
該模塊主要由 EasyRo 貢獻(xiàn), 包含兩個(gè)方法:
- downloadFileWithText
- downloadFileWithUrl
具體使用如下:
import {
downloadFileWithText,
downloadFileWithUrl
} from 'xijs';
// 下載內(nèi)容為 xijs 的txt文件
downloadFileWithText('xijs');
// 請求鏈接為 url 的文件
downloadFileWithUrl('url', 'xxx.xx');
3、圖片處理函數(shù)分類添加生成隨機(jī)顏色函數(shù)
該模塊主要由 bigFace2019 貢獻(xiàn), 具體使用如下:
import { genRandomColor } from 'xijs';
// 獲取隨機(jī)顏色'hsl'|'hsla'|'rgb'|'rgba'|16,默認(rèn)是rgb格式。
const color = genRandomColor('rgba');
4、時(shí)間計(jì)算函數(shù)
該模塊主要由 wujixialan 貢獻(xiàn), 具體介紹如下:
具體使用如下:
// 按需引入的方式
import {dateCalculate, formatDate} from 'xijs';
let data = new Date('2020-01-01')
console.log('year:', dateCalculate(data, -1, 'year'))
data = new Date('2020-01-01')
console.log('month:', dateCalculate(data, -1, 'month'))
data = new Date('2020-01-01')
console.log('day:', dateCalculate(data, -1, 'day'))
data = new Date('2020-01-01 08:00:00')
console.log('hour:', dateCalculate(data, -1, 'hour'))
data = new Date('2020-01-01 08:00:00')
console.log('minute:', dateCalculate(data, -1, 'minute'))
data = new Date('2020-01-01 08:00:00')
console.log('second:', dateCalculate(data, -1, 'second'))
5、數(shù)據(jù)結(jié)構(gòu)相關(guān)分類添加時(shí)間計(jì)算函數(shù)(基于指定的時(shí)間, 判斷現(xiàn)在距離指定時(shí)間的計(jì)算, 比如一天前, 2天前, 3天前, 4天前, 5天前, 6天前, 一周前, 一個(gè)月前, 一年前, n分鐘前, n小時(shí)前)
該模塊主要由 ayangweb 貢獻(xiàn), 具體介紹如下:
使用方法如下:
import { timeCutStr } from 'xijs';
// 以下所有計(jì)算都以當(dāng)前時(shí)間 2023-4-23 23:59:59 為例
let diff = timeCutStr(+new Date('2023-4-23 23:59:59'));
console.log(diff); // 剛剛
diff = timeCutStr(String(+new Date('2023-4-23 23:59:58')));
console.log(diff); // 1秒前
diff = timeCutStr('2023-4-23 23:58:30');
console.log(diff); // 1分鐘前
diff = timeCutStr('2023-4-23 22:58:30');
console.log(diff); // 1小時(shí)前
diff = timeCutStr('2023-4-22 22:58:30');
console.log(diff); // 1天前
diff = timeCutStr('2023-3-23 22:58:30');
console.log(diff); // 1個(gè)月前
diff = timeCutStr('2022-4-23 22:58:30');
console.log(diff); // 1年前
diff = timeCutStr('2023-4-24 00:00:00');
console.log(diff); // 1秒后
diff = timeCutStr('2023-4-24 00:01:00');
console.log(diff); // 1分鐘后
diff = timeCutStr('2023-4-24 01:00:00');
console.log(diff); // 1小時(shí)后
diff = timeCutStr('2023-4-25 00:00:00');
console.log(diff); // 1天后
diff = timeCutStr('2023-5-24 00:00:00');
console.log(diff); // 1個(gè)月后
diff = timeCutStr('2024-4-24 00:00:00');
console.log(diff); // 1年后
接下來我們跑一下單元測試, 對(duì)整個(gè)庫做一個(gè)全面的掃描:
整個(gè)測試一共花了8.14s, 測試全部通過, 各位小伙伴們可以放松食用.
為了方便大家更好的了解 xijs 這個(gè)庫, 我列一個(gè)完整的目錄結(jié)構(gòu)供大家參考, 也可以直接用 xijs 的在線文檔中去參考學(xué)習(xí).
文檔地址: http://h5.dooring.cn/xijs
- 瀏覽器相關(guān)
- getRuntimeEnv - 獲取運(yùn)行環(huán)境
- getSelection - 獲取選中文本
- redirect - 重定向
- store - 本地存儲(chǔ)庫
- 字符串操作
base64 - base64編碼和解碼
camelize - 橫線轉(zhuǎn)駝峰命名
charCount - 獲取字符數(shù)
formatNumber - 數(shù)值千分位格式化
formatPercent - 值轉(zhuǎn)換為百分?jǐn)?shù)表示
hyCompact - 緊湊型駝峰命名轉(zhuǎn)換
hyphenate - 駝峰命名轉(zhuǎn)橫線命名
randomStr - 生成隨機(jī)字符串
repeat - 生成重復(fù)字符串
uuid - 生成唯一id
常用判斷函數(shù)
isArray - 判斷數(shù)組類型
isEmpty - 判斷空對(duì)象
isPc - 判斷設(shè)備類型
isPhone - 判斷手機(jī)號(hào)格式
數(shù)據(jù)結(jié)構(gòu)相關(guān)
cloneDeep - 數(shù)據(jù)深拷貝
formatDate - 時(shí)間格式化
getRawType - 獲取數(shù)據(jù)類型
obj2url - 將對(duì)象參數(shù)解析為url字符串
transformTree - 扁平轉(zhuǎn)樹結(jié)構(gòu)
url2obj - url字符串轉(zhuǎn)對(duì)象
圖片處理函數(shù)
compressImg - 自定義壓縮圖片函數(shù)
file2img - 文件轉(zhuǎn)圖片對(duì)象
hex2rgba - hex色值轉(zhuǎn)rgba
rgba2obj - 將rgba值轉(zhuǎn)化為rgba對(duì)象
js高級(jí)函數(shù)
debounce - 防抖函數(shù)
parser - json超級(jí)解析器
sleep - 睡眠函數(shù)
throttle - 節(jié)流函數(shù)
常用算法和數(shù)據(jù)結(jié)構(gòu)
bubbleSort - 冒泡排序
quickSort - 快速排序
數(shù)學(xué)計(jì)算
average - 計(jì)算數(shù)組平均值
difference - 創(chuàng)建一個(gè)排除指定項(xiàng)的數(shù)組
random - 返回區(qū)域內(nèi)隨機(jī)數(shù)
shuffle - 打亂數(shù)組
幾何計(jì)算
coordinatesInCircle - 生成圓內(nèi)任意坐標(biāo)
coordinatesInRect - 生成矩形內(nèi)任意坐標(biāo)
judgePointInCircle - 判斷一點(diǎn)是否在圓內(nèi)
歡迎大家star推薦和共建, 讓前端工作更高效。
github: https://github.com/MrXujiang/xijs