返回

56个 JavaScript 实用工具函数:助力开发者的渔业增产!

前端

JavaScript 实用工具函数:56 颗点亮开发之旅的璀璨星光

字符串处理工具函数

字符串处理是编程中的常见任务,而这些工具函数将它们简化得轻而易举。capitalize()decapitalize() 可以帮助您控制字符串的大小写。truncate() 允许您截断字符串并添加省略号,而 padLeft()padRight() 可以为您提供优雅的填充。重复字符串、反转字符串,这些任务不再繁琐,只需调用 repeat()reverse() 函数即可。

代码示例:

const str = "Hello World";

console.log(capitalize(str)); // "Hello world"
console.log(decapitalize(str)); // "hello world"
console.log(truncate(str, 10)); // "Hello Wor..."
console.log(padLeft(str, 20, "*")); // "**** **** **** **** Hello World"
console.log(repeat(str, 3)); // "Hello WorldHello WorldHello World"
console.log(reverse(str)); // "dlroW olleH"

数组处理工具函数

数组是另一个常见的数据结构,这些工具函数让您轻松地操作数组。removeDuplicates() 从数组中删除重复项,shuffle() 随机打乱元素顺序。sortBy() 按特定属性对数组进行排序,而 filter()map() 分别用于筛选和转换数组中的元素。reduce() 将数组中的元素聚合为单个值。

代码示例:

const arr = [1, 2, 3, 4, 5, 1, 2, 3];

console.log(removeDuplicates(arr)); // [1, 2, 3, 4, 5]
console.log(shuffle(arr)); // [4, 1, 5, 3, 2, 2, 3, 1]
console.log(sortBy(arr, "asc")); // [1, 1, 2, 2, 3, 3, 4, 5]
console.log(filter(arr, (x) => x % 2 === 0)); // [2, 4]
console.log(map(arr, (x) => x * x)); // [1, 4, 9, 16, 25, 1, 4, 9]
console.log(reduce(arr, (x, y) => x + y, 0)); // 21

对象处理工具函数

对象是 JavaScript 中强大的数据类型,这些工具函数将它们提升到了一个新的水平。mergeObjects() 将多个对象合并为一个,而 cloneObject() 创建一个对象的独立副本。isEmptyObject() 判断一个对象是否为空,getKeys()getValues() 分别返回对象的键和值。pick()omit() 允许您选择或排除特定的键。

代码示例:

const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };

console.log(mergeObjects(obj1, obj2)); // { a: 1, b: 2, c: 3, d: 4 }
console.log(cloneObject(obj1)); // { a: 1, b: 2 }
console.log(isEmptyObject(obj1)); // false
console.log(getKeys(obj1)); // ['a', 'b']
console.log(getValues(obj1)); // [1, 2]
console.log(pick(obj1, ['a'])); // { a: 1 }
console.log(omit(obj1, ['a'])); // { b: 2 }

日期处理工具函数

日期操作是另一种常见任务,这些工具函数使之变得轻而易举。formatDate() 将日期对象格式化为字符串,parseDate() 将字符串解析为日期对象。addDays(), addMonths(), addYears() 允许您轻松修改日期对象。getDaysInMonth() 返回指定月份的天数,isLeapYear() 判断指定年份是否为闰年。

代码示例:

const date = new Date();

console.log(formatDate(date)); // "2023-03-08T12:34:56.789Z"
console.log(parseDate("2023-03-08T12:34:56.789Z")); // Date object
console.log(addDays(date, 10)); // Date object with 10 days added
console.log(addMonths(date, 3)); // Date object with 3 months added
console.log(addYears(date, 2)); // Date object with 2 years added
console.log(getDaysInMonth(date.getMonth() + 1, date.getFullYear())); // 31
console.log(isLeapYear(date.getFullYear())); // true

数字处理工具函数

数字处理是编程的基石,这些工具函数使这些操作变得直观。round() 四舍五入数字,floor() 向下取整,ceil() 向上取整。abs() 取绝对值,pow() 幂次方,sqrt() 开平方根。random() 生成随机数。

代码示例:

const num = 3.14159265;

console.log(round(num)); // 3
console.log(floor(num)); // 3
console.log(ceil(num)); // 4
console.log(abs(-num)); // 3.14159265
console.log(pow(num, 2)); // 9.869604421875
console.log(sqrt(num)); // 1.772453850905516
console.log(random()); // 0.5390271009826844

其他实用工具函数

除了上述类别之外,这些工具函数还为各种任务提供了额外的功能。sleep() 延时执行,debounce()throttle() 控制函数调用频率,memoize() 缓存函数结果。curry()compose() 允许您创建更加灵活的函数。

代码示例:

async function myFunction() {
  console.log("Function executed");
}

sleep(1000).then(myFunction); // Executes the function after 1 second

const debouncedFunction = debounce(myFunction, 250);
debouncedFunction(); // Executes the function after 250 milliseconds since the last call

const throttledFunction = throttle(myFunction, 1000);
throttledFunction(); // Executes the function every 1 second, regardless of how many times it's called

const memoizedFunction = memoize(myFunction);
const result1 = memoizedFunction(1);
const result2 = memoizedFunction(1);
console.log(result1 === result2); // true

const curriedFunction = curry(myFunction);
const partialFunction = curriedFunction(1);
partialFunction(2); // Executes the function with arguments 1 and 2

const composedFunction = compose(myFunction, myOtherFunction);
composedFunction(1); // Executes myOtherFunction first, then myFunction with the result

结论

这 56 个 JavaScript 实用工具函数是任何开发人员工具箱的宝贵补充。它们将提高您的效率,简化您的任务,让您专注于创建出色的代码。将它们添加到您的工具包中,让您的开发之旅更加愉快。

常见问题解答

  1. 这些工具函数与 JavaScript 原生函数有什么区别?

    这些工具函数通常更简洁、更灵活,并且提供了 JavaScript 原生函数中没有的高级功能。

  2. 我需要在所有项目中使用所有工具函数吗?

    并非如此。选择最适合您项目需求的函数,并根据需要使用它们。

  3. 这些工具函数是免费使用的吗?

    是的,这些工具函数通常是作为开源库或直接在 JavaScript 代码中提供的。

  4. 如何学习这些工具函数的用法?

    阅读文档、查看示例代码,并尝试在您自己的项目中使用它们。

  5. 是否可以使用这些工具函数创建 Web 应用程序?

    当然可以。这些工具函数广泛用于各种 Web 应用程序,从简单的工具到复杂的前端框架。