代码小魔术:30 个一行 JavaScript 代码

作为一名前端程序员,你知道时间就是金钱。

每一个小技巧都可能意味着更快的开发时间和更干净的代码。

下面是 30 行代码小魔术 JavaScript 代码,它们将使你的编程工作更轻松。

1. 复制到剪贴板

arduino 复制代码
navigator.clipboard.writeText("Hello, World!");

2. 获取查询字符串参数

dart 复制代码
new URLSearchParams(window.location.search).get('param');

3. 生成随机的 HEX 颜色

javascript 复制代码
`#${Math.floor(Math.random()*0xFFFFFF).toString(16).padEnd(6, '0')}`;

4. 检查日期是否有效

javascript 复制代码
!isNaN(new Date('2021-01-29').valueOf());

5. 睡眠函数

javascript 复制代码
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

6. 深度冻结对象

javascript 复制代码
const deepFreeze = obj => Object.keys(obj).forEach(prop => !(obj[prop] instanceof Object) || Object.freeze(obj[prop]));

7. 精确到指定小数位

javascript 复制代码
const round = (n, decimals) => Number(`${Math.round(`${n}e${decimals}`)}e-${decimals}`);

8. 滚动到页面顶部

ini 复制代码
window.scrollTo(0, 0);

9. 生成指定范围内的随机整数

arduino 复制代码
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;

10. 打乱数组

ini 复制代码
const shuffleArray = arr => arr.sort(() => 0.5 - Math.random());

11. 获取时区

scss 复制代码
Intl.DateTimeFormat().resolvedOptions().timeZone;

12. 检测暗模式

javascript 复制代码
window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;

13. 打印 JSON 对象为美观的字符串

javascript 复制代码
JSON.stringify(obj, null, 2);

14. 获取当前页面的滚动位置

ini 复制代码
const scrollPosition = () => ({ x: window.pageXOffset, y: window.pageYOffset });

15. 创建密钥生成器

vbscript 复制代码
const cryptoKey = () => crypto.getRandomValues(new Uint32Array(1))[0].toString(16);

16. 获取所有的唯一值

dart 复制代码
const uniqueValues = arr => [...new Set(arr)];

17. 检查是否是平日

ini 复制代码
const isWeekday = date => date.getDay() % 6 !== 0;

18. 检查元素是否在视窗中

ini 复制代码
const elementInViewport = el => el.getBoundingClientRect().top >= 0 && el.getBoundingClientRect().bottom <= window.innerHeight;

19. 取得设备类型

javascript 复制代码
const getDeviceType = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'Mobile' : 'Desktop';

20. 找出字符串中最频繁的元素

javascript 复制代码
const getMostFrequent = str => str.split('').reduce((acc, val) => { const count = str.split(val)

21. 简化的HTTP GET请求

javascript 复制代码
fetch('https://api.example.com/data').then(r => r.json()).then(data => console.log(data));

22. 快速转换JSON为对象

json 复制代码
JSON.parse('{"name":"John", "age":30}');

23. 使用console.time计算代码执行时间

javascript 复制代码
console.time('algorithm'); /* your code here */ console.timeEnd('algorithm');

24. 生成UUID

ini 复制代码
[1e7]+-1e3+-4e3+-8e3+-1e11.replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));

25. 简单的验证电子邮件格式

ini 复制代码
/^[\w-.]+@([\w-]+.)+[\w-]{2,4}$/.test('test@example.com');

26. 判断一个数是否是偶数

dart 复制代码
const isEven = num => num % 2 === 0;

27. 使用递归扁平化数组

kotlin 复制代码
const flatten = arr => arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatten(val) : val), []);

28. 简单地实现数组去重

arduino 复制代码
[...new Set([1,2,3,3,4,4,5])];

29. 获取当前年份

scss 复制代码
new Date().getFullYear();

30. 简短的条件语句运行

ini 复制代码
let x = 20, y = 30; x > y && console.log('x is greater than y');

这些一行代码示例能够让你的开发更加高效,有些甚至能让你在编写代码时获得一些乐趣。记得经常回顾这些小技巧,它们可以在你快速构建功能时发挥巨大作用。

相关推荐
知忆_IS8 分钟前
TerriaMap 开发实战04:MVT数据自定义符号化 - terriajs源码修改
javascript·webgis·terriamap·terriajs
卸任34 分钟前
AI 编程工具越用越多,模型配置越来越乱:用 Magpie 把它们管起来
前端·ai编程
前端一课36 分钟前
凝神诀
前端
Brookty1 小时前
Git与GitHub系统学习|本地Git工作模型:终端与进程、CWD、HEAD/Index/工作树及Git对象
git·github
前端双越老师1 小时前
程序员 1v1 访谈系列第十三期:大龄已育空窗一年如何破局
前端·ai编程·全栈
恋猫de小郭2 小时前
Flutter 大小核优化又被回滚,然后又开新提案?
android·前端·flutter
MyBili2 小时前
Chrome扩展开发入门:从零打造实用浏览器插件
前端·chrome·谷歌浏览器·效率工具·浏览器插件·前端入门·扩展开发
FungLeo2 小时前
成为全栈·Vue 管理后台篇·Vue3 + Vite + Naive UI:后台工程基座怎么搭
前端·vue.js·ui·typescript·vite·前端工程化·biome
云上工程笔记2 小时前
SRT字幕一键转手绘动画:srt-whiteboard-animation的复刻实录
大数据·开发语言·javascript·人工智能·机器学习