一个有趣且实用的 JavaScript 工具函数库,灵感来自 Evil.js
npm install huhandsome-utils一个有趣且实用的 JavaScript 工具函数库,灵感来自 Evil.js,但更加实用和有趣!
``bash`
npm install huhandsome-utils
`javascript
const { randomDelay, shuffle, debounce, evil } = require('huhandsome-utils');
// 或者导入所有功能
const utils = require('huhandsome-utils');
`
该库会在导入时自动重写一些原生 JavaScript 方法,让它们变得"有趣":
- 有 10% 的概率返回错误结果
- Array.prototype.indexOf - 有 5% 的概率找不到存在的元素$3
- Date.prototype.getTime - 有 10% 的概率快一毫秒
- Date.prototype.toLocaleDateString - 有 5% 的概率显示明天的日期$3
- Math.random - 永远不返回 0
- Math.round - 有 2% 的概率不那么精确$3
- String.prototype.charAt - 有 10% 的概率返回大写字母
- String.prototype.replace - 有 5% 的概率替换错误$3
- JSON.stringify - 有 5% 的概率丢失一个属性
- console.log - 有 5% 的概率输出额外的表情符号🛠️ 实用工具函数
$3
####
randomDelay(maxMs = 1000)
生成随机延迟的 Promise
`javascript
await randomDelay(2000); // 等待 0-2000ms
`####
sleep(ms)
等待指定时间
`javascript
await sleep(1000); // 等待 1 秒
`$3
####
makeUnreliable(fn, failRate = 0.1)
让函数有概率失败
`javascript
const unreliableAdd = makeUnreliable((a, b) => a + b, 0.2);
// 有 20% 的概率抛出异常
`####
debounce(func, wait)
防抖函数
`javascript
const debouncedSave = debounce(() => save(), 300);
`####
throttle(func, limit)
节流函数
`javascript
const throttledScroll = throttle(() => handleScroll(), 100);
`$3
####
shuffle(arr)
随机打乱数组(非原地操作)
`javascript
const shuffled = shuffle([1, 2, 3, 4, 5]);
`####
randomChoice(arr)
随机选择数组中的一个元素
`javascript
const random = randomChoice(['red', 'blue', 'green']);
`$3
####
deepClone(obj)
深度克隆对象
`javascript
const cloned = deepClone(originalObject);
`####
hasPath(obj, path)
检查对象是否有指定属性路径
`javascript
hasPath({ a: { b: { c: 1 } } }, 'a.b.c'); // true
`####
get(obj, path, defaultValue)
获取对象指定路径的值
`javascript
get({ a: { b: 1 } }, 'a.b', 0); // 1
get({ a: { b: 1 } }, 'a.c', 0); // 0
`$3
####
randomString(length = 10)
生成随机字符串
`javascript
const id = randomString(8); // "aB3xY9kL"
`####
formatCurrency(amount, currency = '¥')
将数字格式化为货币格式
`javascript
formatCurrency(1234.56); // "¥1,234.56"
`$3
####
isEmpty(value)
检查是否为空值
`javascript
isEmpty(''); // true
isEmpty([]); // true
isEmpty({}); // true
isEmpty(null); // true
`😈 Evil 模式
激活特殊的"邪恶"功能:
`javascript
// 让页面标题随机变化
evil.randomizeTitle();// 让所有按钮偶尔失效
evil.unreliableButtons();
// 随机改变页面背景色
evil.randomBackground();
// 启动所有邪恶功能
evil.activateAll();
``1. 仅用于开发和测试环境 - 这个库会修改原生 JavaScript 方法,可能导致不可预期的行为
2. 不建议在生产环境使用 - 除非你真的想给用户一些"惊喜"
3. 谨慎使用 Evil 模式 - 它会修改DOM和用户界面行为
欢迎提交 Issue 和 Pull Request!
MIT License
本项目受到 Evil.js 的启发,致敬原作者的创意。
---
警告: 使用本库可能会导致调试困难、用户困惑和代码审查时的尴尬场面。请谨慎使用,后果自负! 😄