
JavaScript单行代码
发布日期:2021-05-10 03:43:34
浏览次数:25
分类:精选文章
本文共 3607 字,大约阅读时间需要 12 分钟。
JavaScript单行代码技巧
在编程领域,JavaScript作为一门灵活且强大的语言,拥有许多巧妙的单行代码技巧。以下是一些实用的示例,帮助开发者在日常工作中提高效率。
1. ID随机生成
当你需要为物品或用户生成唯一标识符时,可以使用以下方法快速获取一个随机ID:
const a = Math.random().toString(36).substring(2);console.log(a); // 示例输出:72pklaoe38u
2. 范围内的随机数生成
需要在特定范围内生成随机数时,可以使用 Math.random()
函数并进行适当的调整:
const min = 10, max = 20;const a = Math.floor(Math.random() * (max - min + 1)) + min;console.log(a); // 示例输出:17
3. 随机排列数组
在 JavaScript 中没有 random.shuffle()
,但你仍然可以通过以下方法实现数组的随机排序:
const arr = ['A', 'B', 'C', 'D', 'E'];console.log(arr.slice().sort((a, b) => Math.random() - 0.5)); // 示例输出:['C', 'B', 'A', 'D', 'E']
4. 获取随机布尔值
生成一个布尔值,可以利用 Math.random()
的范围特性:
const randomBoolean = () => Math.random() > 0.5;console.log(randomBoolean()); // 示例输出:false
5. 生成十六进制颜色代码
以下方法可以为你生成随机的十六进制颜色代码:
console.log('#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0')); // 示例输出:#48facd
6. 反转字符串
轻松反转字符串的方法如下:
const reverse = str => str.split('').reverse().join('');console.log(reverse('javascript')); // 示例输出:tpircsavaj
7. 交换两个变量
交换两个变量的方法有多种,以下是一种简洁的实现:
let a = 5, b = 7;[a, b] = [b, a];console.log("A=", a, "B=", b); // 输出:A=7, B=5
8. 多变量分配
JavaScript 允许通过解构赋值来同时分配多个变量:
const [a, b, c, d] = [20, 14, 30, 'COD'];console.log(a, b, c, d); // 输出:20 14 30 COD
9. 检查偶数和奇数
判断一个数是否为偶数的方法如下:
const isEven = num => num % 2 === 0;console.log(isEven(2)); // trueconsole.log(isEven(3)); // false
10. FizzBuzz 简单版
编写一个简单的 FizzBuzz 程序:
for (let i = 1; i <= 100; i++) { const f = i % 5 ? (i % 3 ? i : 'Fizz') : 'Buzz'; console.log(f); // 输出示例:12Fizz4BuzzFizz78Fizz}
11. 回文检查
判断一个字符串是否为回文:
const isPalindrome = str => str === str.split('').reverse().join('');console.log(isPalindrome('abcba')); // trueconsole.log(isPalindrome('abcbc')); // false
12. 检查数组元素条件
检查数组中所有元素是否满足特定条件:
const hasEnoughSalary = salary => salary >= 30000;const salarys = [70000, 19000, 12000, 30000, 15000, 50000];console.log(salarys.every(hasEnoughSalary)); // false
13. 计算两个日期之间的天数
计算两个日期之间的天数:
const days = (date1, date2) => Math.ceil(Math.abs(date1 - date2) / 86400000);console.log(days(new Date('2020-04-15'), new Date('2021-01-15'))); // 275
14. 将字符串转换为数字
字符串转数字的简单方法:
const toNumber = str => +str;console.log(toNumber("2")); // 2console.log(typeof(toNumber("2"))); // 'number'
15. 合并多个数组
将多个数组合并为一个数组:
const cars = ['🚓', '🚗'];const trucks = ['🚚', '🚛'];const combined = [].concat(cars, trucks);console.log(combined); // ['🚓', '🚗', '🚚', '🚛']
16. 数字截断到固定小数点
将数字截断到指定的小数位数:
const toFixed = (n, fixed) => { const factor = Math.pow(10, fixed); return Math.floor(n * factor) / factor;};console.log(toFixed(25.198726354, 1)); // 25.1
17. 滚动到页面顶部
快速滚动到页面顶部:
const goToTop = () => window.scrollTo(0, 0);goToTop();
18. 华氏度转摄氏度
温度单位转换函数:
const celsiusToFahrenheit = celsius => celsius * 9/5 + 32;const fahrenheitToCelsius = fahrenheit => (fahrenheit - 32) * 5/9;console.log(celsiusToFahrenheit(15)); // 59console.log(fahrenheitToCelsius(59)); // 15
19. 特定 Cookie 的价值
提取特定 Cookie 的值:
const cookie = name => { const cookies = document.cookie; return cookies.split(`; ${name}=`).pop().split(';').shift();};console.log(cookie('_ga')); // GA1.3.974792242.1509957189
20. 复制文本到剪贴板
将文本复制到剪贴板:
const copyTextToClipboard = async text => { await navigator.clipboard.writeText(text);};copyTextToClipboard('示例文本');
21. 删除 HTML 标签
移除所有 HTML 标签:
const cleanHTML = str => str.replace(/<\/?[^>]+>/gi, '');console.log(cleanHTML(' A ')); // ' A '
22. 克隆数组
创建数组的副本:
const oldArray = [1, 4, 2, 3];const newArray = oldArray.slice();console.log(newArray); // [1, 4, 2, 3]
这些技巧不仅可以帮助开发者提高效率,还能在日常工作中节省宝贵的时间。