技术文摘
八个工程必用的 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 项目 八个工程
- C 语言 X-MACRO 宏的使用窍门
- 以下几种常见的 JVM 调优场景,你是否知晓?
- TypeScript 内置高级类型之类型体操探究
- Vue 中利用 $attrs 打造高级组件
- 用 CSS 实现复杂 JavaScript 效果的四个技巧
- 鹅厂程序员因「羊了个羊」被逼疯 怒制「必通关版」登上 GitHub 热榜
- 十个有趣的 Python 工具包 助工作效率翻倍
- IEEE 年度薪酬报告:美国程序员薪资中位数七年来首降 2.4 万
- 面试突击:事务@Transactional失效的原因
- 基于羊了个羊探讨小程序抓包及响应报文篡改
- C++ 和 Python 中归并排序数组的全新途径
- Java 中树(BST)的数据结构与算法
- 轻松打造表情符号制作应用
- Docker 基础:掌握 Docker 安装 Mongodb 了吗?
- TC39 第 92 次会议举行 部分提案获新进展