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