当前位置: 首页 > news >正文

JavaScript中提高效率的技巧一

1.生成随机颜色的两种方式

1).生成RandomHexColor

const generateRandomHexColor = () => {return `#${Math.floor(Math.random() * 0xffffff).toString(16).padStart(6, '0')}`
}
generateRandomHexColor() // #a8277c
generateRandomHexColor() // #09c20c
generateRandomHexColor() // #dbc319

2).生成随机RGBA

const generateRandomRGBA = () => {const r = Math.floor(Math.random() * 256)const g = Math.floor(Math.random() * 256)const b = Math.floor(Math.random() * 256)const a = Math.random().toFixed(2)return `rgba(${[ r, g, b, a ].join(',')})`
}
generateRandomRGBA() // rgba(242,183,70,0.21)
generateRandomRGBA() // rgba(65,171,97,0.72)
generateRandomRGBA() // rgba(241,74,149,0.33)

2.复制内容到剪贴板的两种方式

方式1

const copyToClipboard = (text) => navigator.clipboard && navigator.clipboard.writeText && navigator.clipboard.writeText(text)
copyToClipboard('hello medium')

方式2

const copyToClipboard = (content) => {const textarea = document.createElement("textarea")textarea.value = contentdocument.body.appendChild(textarea)textarea.select()document.execCommand("Copy")textarea.remove()
}
copyToClipboard('hello medium')

3. 获取URL中的查询参数​​​​​​​

const parseQuery = (name) => {return new URL(window.location.href).searchParams.get(name)
}
​​​​​​​
// https://medium.com?name=fatfish&age=100
parseQuery('name') // fatfish
parseQuery('age') // 100
parseQuery('sex') // null

4.Please wait for a while

const timeout = (timeout) => new Promise((rs) => setTimeout(rs, timeout))

5.打乱数组

const shuffle = (array) => array.sort(() => 0.5 - Math.random())
shuffle([ 1, -1, 2, 3, 0, -4 ]) // [2, -1, -4, 1, 3, 0]
shuffle([ 1, -1, 2, 3, 0, -4 ]) // [3, 2, -1, -4, 0, 1]

6. 深拷贝一个对象

如何深拷贝对象?使用 StructuredClone 使其变得非常容易。

const obj = {name: 'fatfish',node: {name: 'medium',node: {name: 'blog'}}
}
const cloneObj = structuredClone(obj)
cloneObj.name = '1111'
cloneObj.node.name = '22222'
console.log(cloneObj)
/*
{"name": "1111","node": {"name": "22222","node": {"name": "blog"}}
}
*/
console.log(obj)
/*
{"name": "fatfish","node": {"name": "medium","node": {"name": "blog"}}
}
*/

http://www.lryc.cn/news/523331.html

相关文章:

  • 美食推荐系统 协同过滤余弦函数推荐美食 Springboot Vue Element-UI前后端分离
  • ThinkPHP 8的一对多关联
  • Django简介与虚拟环境安装Django
  • Redis延迟队列详解
  • 一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用
  • 第二代增强-采购申请屏幕增强
  • 图论DFS:黑红树
  • 零基础一篇打通Vue极速通关教程
  • 商城系统中的常见 BUG
  • 下定决心不去读研了。。。
  • 100个网络基础知识
  • 庄小焱——2024年博文总结与展望
  • 高通8255 Android STR 启动失败要因分析调查
  • Qt QML专栏目录结构
  • “深入浅出”系列之FFmpeg:(3)音视频开发的学习路线和必备知识
  • Webpack简述
  • 解决 Error: Invalid or corrupt jarfile day04_studentManager.jar 报错问题
  • ACL基础理论
  • 庄周梦蝶1
  • 使用SIPP发起媒体流性能测试详解
  • 瑞利衰落信道机理的详解
  • PyTorch使用教程(2)-torch包
  • Bash语言的函数实现
  • ChatGPT 写作系列
  • RK3576 Android14 状态栏和导航栏增加显示控制功能
  • SDL2:arm64下编译使用 -- SDL2多媒体库使用音频实例
  • Syncthing在ubuntu下的安装使用
  • 使用 Helm 安装 Redis 集群
  • 基于32QAM的载波同步和定时同步性能仿真,包括Costas环的gardner环
  • 【ArcGIS微课1000例】0140:总览(鹰眼)、放大镜、查看器的用法