7个杀手级的JS一行代码

JavaScript是网络开发中最关键的支柱。

这篇文章包含了由无菌手套手工挑选的代码片段,并放置在一个绸缎枕头上。
一个由50人组成的团队检查了这些代码,并确保其在发布前处于高度抛光状态。我们来自瑞士的文章发布专家点燃了一支蜡烛,当他将代码输入金钱所能买到的最好的镶金键盘时,人群中一片嘘声。
我们都有一个美妙的庆祝活动,整个聚会沿着街道行进到咖啡馆,整个加尔各答镇都向文章发布到网上时挥手致意 "一路顺风!"。

祝您阅读愉快!

数组乱序

在使用需要某种程度的随机化的算法时,你会经常发现洗牌数组是一个相当必要的技能。下面的片段以O(n log n)的复杂度对一个数组进行就地洗牌。

const shuffleArray = (arr) => arr.sort(() => Math.random() - 0.5) 。
// 测试
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(shuffleArray(arr))。

复制到剪贴板

在Web应用程序中,复制到剪贴板因其对用户的便利性而迅速流行起来。

const copyToClipboard = (text) =>
  navigator.clipboard?.writeText && navigator.clipboard.writeText(text)。
// 测试
copyToClipboard("Hello World!")。

注意:根据caniuse,该方法对93.08%的全球用户有效。所以必须检查用户的浏览器是否支持该API。为了支持所有用户,你可以使用一个输入并复制其内容。

数组去重

每种语言都有自己的哈希列表的实现,在JavaScript中,它被称为Set。你可以使用Set数据结构轻松地从一个数组中获得唯一元素。

const getUnique = (arr) => [...new Set(arr)]。
// 测试
const arr = [1, 1, 2, 3, 3, 4, 4, 5, 5];
console.log(getUnique(arr))。

检测黑暗模式

随着黑暗模式的普及,如果用户在他们的设备中启用了黑暗模式,那么将你的应用程序切换到黑暗模式是非常理想的。幸运的是,可以利用媒体查询来使这项任务变得简单。

const isDarkMode = () =>
  window.matchMedia &&
  window.matchMedia("(prefers-color-scheme: dark)").matches。
// 测试
console.log(isDarkMode())。

根据caniuse的数据,matchMedia的支持率为97.19%。

滚动到顶部

初学者经常发现自己在正确滚动元素的过程中遇到困难。最简单的滚动元素的方法是使用scrollIntoView方法。添加行为。"smooth "来实现平滑的滚动动画。

const scrollToTop = (element) =>
  element.scrollIntoView({ behavior: "smooth", block: "start" })。

滚动到底部

就像scrollToTop方法一样,scrollToBottom方法也可以用scrollIntoView方法轻松实现,只需将块值切换为结束即可

const scrollToBottom = (element) =>
  element.scrollIntoView({ behavior: "smooth", block: "end" })。

生成随机颜色

你的应用程序是否依赖随机颜色的生成?不用再看了,下面的代码段可以满足你的要求

const generateRandomHexColor = () =>
  `#${Math.floor(Math.random() * 0xffffff) .toString(16)}`;

关注我,了解科技领域的每周新资讯
需要一个评级最高的前端开发自由职业者来解决你的开发问题?请在Upwork上联系我
想看看我在做什么?请查看我的个人网站GitHub
想联系我吗?请在LinkedIn上与我联系
我是一个自由职业者,将在2022年中期开始作为一个数字游牧者。想了解我的旅程吗?在Instagram上关注我

Github 是 [链接]

4.2k 声望
441 粉丝
0 条评论
推荐阅读
从 JavaScript 迁移到 TypeScript
我作为一名 JavaScript 开发人员已经很多年了,我并没有太多打算跳出我的技术堆栈。我告诉自己,坚持你已经知道的东西和尝试学习太多的编程语言可能会让人望而生畏。

chatgpt1阅读 1.5k

手把手教你写一份优质的前端技术简历
不知不觉一年一度的秋招又来了,你收获了哪些大厂的面试邀约,又拿了多少offer呢?你身边是不是有挺多人技术比你差,但是却拿到了很多大厂的offer呢?其实,要想面试拿offer,首先要过得了简历那一关。如果一份简...

tonychen152阅读 17.8k评论 5

封面图
正则表达式实例
收集在业务中经常使用的正则表达式实例,方便以后进行查找,减少工作量。常用正则表达式实例1. 校验基本日期格式 {代码...} {代码...} 2. 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊...

寒青56阅读 8.5k评论 11

JavaScript有用的代码片段和trick
平时工作过程中可以用到的实用代码集棉。判断对象否为空 {代码...} 浮点数取整 {代码...} 注意:前三种方法只适用于32个位整数,对于负数的处理上和Math.floor是不同的。 {代码...} 生成6位数字验证码 {代码...} ...

jenemy48阅读 7.1k评论 12

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木75阅读 7.1k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs42阅读 6.8k评论 12

封面图
CSS 绘制一只思否猫
欢迎关注我的公众号:前端侦探练习 CSS 有一个比较有趣的方式,就是发挥想象,绘制各式各样的图案,比如来绘制一只思否猫?思否猫,SegmentFault 思否的吉祥物,是一只独一无二、特立独行、热爱自由的(>^ω^&lt...

XboxYan47阅读 3.3k评论 14

封面图

Github 是 [链接]

4.2k 声望
441 粉丝
宣传栏