以下整理了33个实用的JavaScript一行代码,涵盖日期、字符串、数组、数字、颜色、浏览器操作等多个场景,适合快速查阅与学习:
日期处理
- 检查日期有效性:const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf());
- 计算日期差(天):const dayDif = (d1, d2) => Math.ceil(Math.abs(d1-d2)/86400000);
- 获取一年中的第几天:const dayOfYear = d => Math.floor((d - new Date(d.getFullYear(),0,0))/86400000);
- 格式化时间(HH:MM:SS):const timeFromDate = d => d.toTimeString().slice(0,8);
字符串处理
- 首字母大写:const capitalize = s => s.charAt(0).toUpperCase() + s.slice(1);
- 翻转字符串:const reverse = s => [...s].reverse().join('');
- 生成随机字符串:const randomString = () => Math.random().toString(36).slice(2);
- 截断字符串(加省略号):const truncateString = (s,l) => s.length<l ? s : ${s.slice(0,l-3)}...;
- 去除HTML标签:const stripHtml = h => (new DOMParser().parseFromString(h,'text/html')).body.textContent;
数组处理
- 去重:const removeDuplicates = a => [...new Set(a)];
- 判断非空数组:const isNotEmpty = a => Array.isArray(a) && a.length>0;
- 合并数组:const merge = (a,b) => [...a,...b];
数字操作
- 判断奇偶:const isEven = n => n%2===0;
- 计算平均值:const average = (...n) => n.reduce((a,b)=>a+b)/n.length;
- 生成随机整数:const random = (min,max) => Math.floor(Math.random()*(max-min+1)+min);
- 指定位四舍五入:const round = (n,d) => Number(Math.round(n+'e'+d)+'e-'+d);
颜色操作
- RGB转16进制:const rgbToHex = (r,g,b) => '#'+((1<<24)+(r<<16)+(g<<8)+b).toString(16).slice(1);
- 生成随机16进制颜色:const randomHex = () => '#'+Math.floor(Math.random()*0xffffff).toString(16).padEnd(6,'0');
浏览器操作
- 复制到剪贴板:const copyToClipboard = t => navigator.clipboard.writeText(t);
- 清除所有Cookie:const clearCookies = () => document.cookie.split(';').forEach(c=>document.cookie=c.replace(/^ +/,'').replace(/=.*/,=;expires=${new Date(0).toUTCString()};path=/));
- 获取选中文本:const getSelectedText = () => window.getSelection().toString();
- 检测黑暗模式:const isDarkMode = () => window.matchMedia('(prefers-color-scheme:dark)').matches;
- 滚动到顶部:const goToTop = () => window.scrollTo(0,0);
- 检测标签页激活状态:const isTabInView = () => !document.hidden;
- 检测苹果设备:const isAppleDevice = () => /Mac|iPod|iPhone|iPad/.test(navigator.platform);
- 检测滚动到底部:const scrolledToBottom = () => window.innerHeight+window.scrollY>=document.body.scrollHeight;
- 重定向URL:const redirect = u => location.href=u;
- 打开打印对话框:const showPrintDialog = () => window.print();
其他操作
- 生成随机布尔值:const randomBoolean = () => Math.random()>=0.5;
- 交换变量值:[a,b]=[b,a];
- 获取变量类型:const trueTypeOf = o => Object.prototype.toString.call(o).slice(8,-1).toLowerCase();
- 温度单位转换:
摄氏转华氏:const celsiusToFahrenheit = c => c*9/5+32;
华氏转摄氏:const fahrenheitToCelsius = f => (f-32)*5/9;
- 检测空对象:const isEmpty = o => Reflect.ownKeys(o).length===0 && o.constructor===Object;
这些代码片段通过巧妙利用JavaScript的API与语法特性,实现了高效简洁的功能,适合在实际开发中快速调用或作为学习参考。