本文分享20个实用单行代码小技巧,这些技巧展现了 JavaScript 的灵活性和现代语法的简洁性。
1. 数组去重
const uniqueArr = [...new Set(arr)];
用 Set 数据结构快速去重,再转回数组。
2. 打乱数组顺序
const shuffled = arr.sort(() => Math.random() - 0.5);
通过随机返回正负值的排序函数实现乱序(非完美均匀分布)。
3. 生成随机字符串
const randomStr = Math.random().toString(36).slice(2, 11);
利用 36 进制转换(0-9+a-z)生成随机字符。
4. 检查数组是否为空
const isEmpty = arr => !Array.isArray(arr) || arr.length === 0;
双重验证确保安全性。
5. 反转字符串
const reversedStr = str.split('').reverse().join('');
经典三步法反转字符串。
6. 获取 URL 查询参数
const params = new URLSearchParams(window.location.search);
通过内置 API 快速解析 URL 参数。
7. 深拷贝简单对象
const deepCopy = obj => JSON.parse(JSON.stringify(obj));
通过 JSON 序列化实现(不支持函数和循环引用)。
8. 数组求和
const sum = arr.reduce((a, b) => a + b, 0);
使用 reduce 方法累加。
9. 检查偶数
const isEven = num => num % 2 === 0;
取模运算判断奇偶。
10. 生成随机 HEX 颜色
const randomColor = '#' + Math.floor(Math.random()*0xFFFFFF).toString(16).padStart(6,0);
生成 6 位十六进制颜色代码。
11. 判断回文字符串
const isPalindrome = str === str.split('').reverse().join('');
通过反转字符串比较判断回文。
12. 获取当前日期(YYYY-MM-DD)
const today = new Date().toISOString().split('T')[0];
利用 ISO 日期格式截取年月日。
13. 交换变量值
[
通过解构赋值实现优雅交换。
14. 检查对象是否为空
const isEmptyObj = obj => Object.keys(obj).length === 0;
通过键列表长度判断空对象。
15. 首字母大写
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1);
字符串操作实现首字母大写。
16. 生成斐波那契数列
const fib = n => Array.from({length:n}).reduce((acc,_,i)=>acc.concat(i>1?acc[i-1]+acc[i-2]:i),[]);
使用 reduce 生成斐波那契数组。
17. 快速复制到剪贴板
const copy = text => navigator.clipboard.writeText(text);
调用现代浏览器 Clipboard API。
18. 生成随机布尔值
const randomBool = () => Math.random() >= 0.5;
通过概率生成随机布尔值。
19. 数字转金额格式
const formatMoney = num => num.toLocaleString('en-US');
利用本地化方法格式化数字(如 1,234.56)。
20. 扁平化二维数组
const flatArr = arr => [].concat(...arr);
通过扩展运算符快速展开二维数组。
注意:
-
部分方法需注意浏览器兼容性(如 Clipboard API)
-
数学运算需注意精度问题
-
深拷贝方法不适用于复杂对象
-
乱序算法不适合高精度随机需求
![]() |
Austin Liu 刘恒辉
Project Manager and Software Designer E-Mail:lzhdim@163.com Blog:https://lzhdim.cnblogs.com 欢迎收藏和转载此博客中的博文,但是请注明出处,给笔者一个与大家交流的空间。谢谢大家。 |




浙公网安备 33010602011771号