

20 个杀手级 JavaScript 单行代码
source link: https://segmentfault.com/a/1190000040721650
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文整理了一些实用的 JavaScript 单行代码,非常好用~~
获取浏览器Cookie的值
通过document.cookie
来查找cookie
值
const cookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift(); cookie('_ga'); // Result: "GA1.2.1929736587.1601974046"
颜色RGB转十六进制
const rgbToHex = (r, g, b) => "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); rgbToHex(0, 51, 255); // Result: #0033ff
复制到剪贴板
借助navigator.clipboard.writeText
可以很容易的讲文本复制到剪贴板
规范要求在写入剪贴板之前使用 Permissions API 获取“剪贴板写入”权限。但是,不同浏览器的具体要求不同,因为这是一个新的API。有关详细信息,请查看compatibility table and Clipboard availability in Clipboard。
const copyToClipboard = (text) => navigator.clipboard.writeText(text); copyToClipboard("Hello World");
检查日期是否合法
使用以下代码段检查给定日期是否有效。
const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf()); isDateValid("December 17, 1995 03:24:00"); // Result: true
查找日期位于一年中的第几天
const dayOfYear = (date) => Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24); dayOfYear(new Date()); // Result: 272
英文字符串首字母大写
Javascript没有内置的首字母大写函数,因此我们可以使用以下代码。
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1) capitalize("follow for more") // Result: Follow for more
计算2个日期之间相差多少天
const dayDif = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000) dayDif(new Date("2020-10-21"), new Date("2021-10-22")) // Result: 366
清除全部Cookie
通过使用document.cookie
访问cookie并将其清除,可以轻松清除网页中存储的所有cookie。
const clearCookies = document.cookie.split(';').forEach(cookie => document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date(0).toUTCString()};path=/`));
生成随机十六进制颜色
可以使用 Math.random
和 padEnd
属性生成随机的十六进制颜色。
const randomHex = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, "0")}`; console.log(randomHex()); // Result: #92b008
可以使用 JavaScript 中的Set
轻松删除重复项
const removeDuplicates = (arr) => [...new Set(arr)]; console.log(removeDuplicates([1, 2, 3, 3, 4, 4, 5, 5, 6])); // Result: [ 1, 2, 3, 4, 5, 6 ]
从 URL 获取查询参数
可以通过传递 window.location
或原始 URL goole.com?search=easy&page=3
轻松地从 url 检索查询参数
const getParameters = (URL) => { URL = JSON.parse( '{"' + decodeURI(URL.split("?")[1]) .replace(/"/g, '\\"') .replace(/&/g, '","') .replace(/=/g, '":"') + '"}' ); return JSON.stringify(URL); }; getParameters(window.location); // Result: { search : "easy", page : 3 }
或者更为简单的:
Object.fromEntries(new URLSearchParams(window.location.search)) // Result: { search : "easy", page : 3 }
我们可以从给定日期以 hour::minutes::seconds
格式记录时间。
const timeFromDate = date => date.toTimeString().slice(0, 8); console.log(timeFromDate(new Date(2021, 0, 10, 17, 30, 0))); // Result: "17:30:00"
校验数字是奇数还是偶数
const isEven = num => num % 2 === 0; console.log(isEven(2)); // Result: True
求数字的平均值
使用reduce
方法找到多个数字之间的平均值。
const average = (...args) => args.reduce((a, b) => a + b) / args.length; average(1, 2, 3, 4); // Result: 2.5
可以使用 window.scrollTo(0, 0)
方法自动滚动到顶部。 将 x
和 y
都设置为 0。
const goToTop = () => window.scrollTo(0, 0); goToTop();
翻转字符串
可以使用 split
、reverse
和 join
方法轻松反转字符串。
const reverse = str => str.split('').reverse().join(''); reverse('hello world'); // Result: 'dlrow olleh'
校验数组是否为空
一行代码检查数组是否为空,将返回true
或false
const isNotEmpty = arr => Array.isArray(arr) && arr.length > 0; isNotEmpty([1, 2, 3]); // Result: true
获取用户选择的文本
使用内置的getSelection
属性获取用户选择的文本。
const getSelectedText = () => window.getSelection().toString(); getSelectedText();
可以使用sort
和 random
方法打乱数组
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random()); console.log(shuffleArray([1, 2, 3, 4])); // Result: [ 1, 4, 3, 2 ]
检查用户的设备是否处于暗模式
使用以下代码检查用户的设备是否处于暗模式。
const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches console.log(isDarkMode) // Result: True or False
Recommend
-
60
(点击上方公众号,可快速关注) 来源:飒然Hang , www.rowkey.me/blog/2017/...
-
8
能在本文中出场的代码全部都经过了仔细的甄选,在文章发布前,50 人的团...
-
8
11个罕见的 JavaScript 单行代码,会让你大吃一惊 在今天的文章中,我将与你一起来学习 11 个罕见但功能强大的单行代码。现在,准备好,让我们开始吧!
-
3
11个罕见的JavaScript单行代码,会让你大吃一惊-51CTO.COM 11个罕见的JavaScript单行代码,会让你大吃一惊 2022-07-12 10:18:05 在今天的文章中,我将与你一起来学习 11 个罕见但功...
-
5
分享25个有用的JavaScript单行代码JavaScript 有很多单行代码的实用例子,它们可以做很多强大的事情,无论你是 JavaScript 新手还是经验丰富的开发人员,学习些新东西总...
-
2
38 个非常有用的 JavaScript 单行代码汇总更新日期: 2022-09-05阅读: 32标签:
-
8
1.生成随机字符串 我们可以使用 Math.random() 来生成一个随机字符串,当...
-
6
11个 杀手级 JavaScript 单行代码 作者:杨小爱 2022-10-20 15:16:23 每个 JS 开发人员都应该使用 javascript one liner 来提高生产力和技能,所以今天我们讨论一些可以在日常开发生活中使用的 one liner。
-
6
11个JavaScript 单行代码技巧 作者:杨小爱 2022-11-28 23:44:26 我们每个 JavaScript 程序员都应该学习使用 JavaScript 单行代码技巧来提高生产力,因此,今天这篇文章,我们将分享一些可以在日常开发生活中使用...
-
9
14 个快速简洁的单行 JavaScript 代码解决方案 作者:佚名 2022-12-28 17:20:03 在本文中,我们将研究几种快速简洁的单行解决方案,以解决 JavaScript 中经常出现的各种问题。 在编程中,解决同一个问题...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK