技术文摘
八个工程必用的 JavaScript 代码片段(推荐加入项目)
2024-12-31 04:06:08 小编
八个工程必用的 JavaScript 代码片段(推荐加入项目)
在 JavaScript 开发中,有一些代码片段是在各种工程项目中经常会用到的。它们不仅能提高开发效率,还能优化代码质量。以下为您介绍八个这样的实用代码片段。
- 数组去重
function uniqueArray(arr) {
return Array.from(new Set(arr));
}
这个函数可以轻松去除数组中的重复元素。
- 深拷贝对象
function deepCopy(obj) {
return JSON.parse(JSON.stringify(obj));
}
确保在复制对象时,不会因为引用而导致意外的修改。
- 防抖函数
function debounce(func, delay) {
let timer;
return function(...args) {
clearTimeout(timer);
timer = setTimeout(() => {
func.apply(this, args);
}, delay);
};
}
用于限制频繁触发的函数,避免不必要的计算。
- 节流函数
function throttle(func, delay) {
let lastExecuted = 0;
return function(...args) {
const now = new Date().getTime();
if (now - lastExecuted >= delay) {
func.apply(this, args);
lastExecuted = now;
}
};
}
控制函数在一定时间内的执行频率。
- 格式化日期
function formatDate(date, format) {
const map = {
"yyyy": date.getFullYear(),
"MM": (date.getMonth() + 1).toString().padStart(2, '0'),
"dd": date.getDate().toString().padStart(2, '0'),
"HH": date.getHours().toString().padStart(2, '0'),
"mm": date.getMinutes().toString().padStart(2, '0'),
"ss": date.getSeconds().toString().padStart(2, '0')
};
return format.replace(/(yyyy|MM|dd|HH|mm|ss)/g, matched => map[matched]);
}
方便根据特定格式输出日期字符串。
- 随机字符串生成
function generateRandomString(length) {
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
return result;
}
在需要随机字符串的场景中非常有用。
- 数据类型判断
function typeOf(obj) {
return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
}
准确判断数据的类型。
- 字符串驼峰转下划线
function camelToSnake(str) {
return str.replace(/([A-Z])/g, '_$1').toLowerCase();
}
将这些实用的 JavaScript 代码片段加入您的工程项目中,能够让您的开发更加高效和便捷,提升代码的质量和可维护性。
TAGS: 项目推荐 JavaScript 代码片段 JavaScript 项目 八个工程
- Java 基础入门之变量数据类型与基本数据类型(四)
- Python 中基于遗传算法的垃圾收集策略优化
- Java 泛型的注意事项
- SpringBoot 外部配置源码解析:综合实战中的参数与配置
- Python 爬虫新手教程:轻松学会网页数据爬取
- WebAssembly 助力提升模型部署的速度与可移植性
- IT 工程师必知的 Docker 容器网络技术
- RIAA 要求 GitHub 删除 YouTube-DL 代码引发争议
- 程序员应知晓的若干软件架构模式
- 36 岁博士程序员求职遇阻,大厂“年龄歧视”并非秘密
- Java TheadLocal 竟是内存泄露的罪魁祸首,原因已找到
- GNU 推出 GDB 新版本 10.1 与 mtools 4.025
- 面向对象程序设计在盛行几十年后会面临淘汰吗?
- 10 个 IoT 产品的卓越实践
- 怎样善用云原生数据湖