管理

20个JavaScript单行代码小技巧,开发效率直接拉满!

Posted on 2026-01-15 00:00  lzhdim  阅读(3)  评论(0)    收藏  举报
本文分享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. 交换变量值

[a, b] = [b, a];
通过解构赋值实现优雅交换。

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);
通过扩展运算符快速展开二维数组。

注意:

  1. 部分方法需注意浏览器兼容性(如 Clipboard API)

  2. 数学运算需注意精度问题

  3. 深拷贝方法不适用于复杂对象

  4. 乱序算法不适合高精度随机需求

Copyright © 2000-2022 Lzhdim Technology Software All Rights Reserved