2

20 个令人惊叹的一行 JavaScript 代码

 9 months ago
source link: https://blog.p2hp.com/archives/11704
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.
neoserver,ios ssh client

本文为转载翻译文章。

原文地址:dev.to/saviomartin…

原文作者:Savio Martin

今天,我想分享 20 个 令人惊叹的 JavaScript 一行代码,让你的工作更轻松。一起来看看吧!🚀

1. 获取浏览器 Cookie 的值

使用 document.cookie 来获取 Cookie 的值。

const cookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift();

cookie('_ga');
// Result: "GA1.2.1929736587.1601974046"

2. 将 RGB 转换为十六进制

const rgbToHex = (r, g, b) => "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);

rgbToHex(0, 51, 255);
// Result: #0033ff`

3. 复制到剪贴板

使用 navigator.clipboard.writeText 轻松将任何文本复制到剪贴板上。

const copyToClipboard = (text) => navigator.clipboard.writeText(text);
copyToClipboard("Hello World");

4.检查日期是否有效

使用以下代码段检查日期是否有效。

const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf());
isDateValid("December 17, 1995 03:24:00");
// Result: true

5.找出一年中的某一天

查找日期中的某一天。

const dayOfYear = (date) => Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
dayOfYear(new Date());
// Result: 272

将6.字符串首字母大写

Javascript 没有内置的大写函数,因此我们可以使用以下代码。

const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1)
capitalize("follow for more")
// Result: Follow for more

7.计算两天之间相差的天数

使用以下代码段查找给定 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

8.清除所有 Cookie

通过使用 document.cookie 可以轻松清除存储在网页中的所有 cookie 。

const clearCookies = document.cookie.split(';').forEach(cookie => document.cookie = cookie.replace(/^ +/, '').replace(/=.\*/, `=;expires=${new Date(0).toUTCString()};path=/`));

9. 生成随机十六进制

使用 Math.random 和 padEnd 属性生成随机的十六进制。

const randomHex = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, "0")}`;
console.log(randomHex());
// Result: #92b008

10. 数组去重

使用 SetJavaScript 可以轻松地删除重复项。超级有用!

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 ]

11. 从 URL 获取查询参数

通过 window.location 或原始 URL 轻松查询 goole.com?search=easy&page=3 的参数。

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 }

/---------------or-------------/

Object.fromEntries(new URLSearchParams(window.location.search))

12. 从日期获取“时分秒”格式的时间

我们可以从日期中,获取到 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"

13. 确认奇偶数

const isEven = num => num % 2 === 0;
console.log(isEven(2));
// Result: True
/---------------------or----------------/
const isEven = num => (num & 1) === 0
console.log(isEven(2));
// Result: True

14. 求平均值

使用 reduce 方法找到多个数字的平均值。

const average = (...args) => args.reduce((a, b) => a + b) / args.length;
average(1, 2, 3, 4);
// Result: 2.5

15. 回到顶部

使用 window.scrollTo(0, 0) 方法自动回到顶部。将 x 和 y 都设置为 0。

const goToTop = () => window.scrollTo(0, 0);
goToTop();

16. 翻转字符串

使用split,reverse 和 join 方法轻松翻转字符串。

const reverse = str => str.split('').reverse().join('');
reverse('hello world');
// Result: 'dlrow olleh'

17. 检查数组是否为空

检查数组是否为空的简单代码,结果将返回 true 或 false。

const isNotEmpty = arr => Array.isArray(arr) && arr.length > 0;
isNotEmpty([1, 2, 3]);
// Result: true

18. 获取用户选定的文本

使用内置 getSelection 属性获取用户选择的文本。

const getSelectedText = () => window.getSelection().toString();
getSelectedText();

19. 打乱数组

使用 sort 和 random 方法对数组进行打乱混合。

const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());
console.log(shuffleArray([1, 2, 3, 4]));
// Result: [ 1, 4, 3, 2 ]

20. 检测用户是否处于暗模式

使用以下代码检查用户的设备是否处于暗模式。

const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
console.log(isDarkMode) // Result: True or False

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK