面向开发人员的 50 个实用 JavaScript 技巧

面向开发人员的 50 个实用 JavaScript 技巧

JavaScript 是一种动态且不断发展的语言,掌握它的怪癖可以显着提高您的编码效率。无论您是初学者还是高级开发人员,这 50 个实用技巧都将提高您的 JavaScript 技能并帮助您编写更简洁、更高效的代码。


在 JavaScript 中反转字符串可以使用单行代码来实现:

const reversedString = str.split('').reverse().join('');

这会将字符串分解为字符数组,将其反转,然后将其联接回来。

2. 对数组求和

使用reduce():

const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, curr) => acc + curr, 0);

3. 在数组中查找最大值和最小值

将 spread 运算符与 和 一起使用 可查找最大值和最小值:Math.max()Math.min()

const numbers = [3, 7, 1, 9];
const max = Math.max(...numbers);
const min = Math.min(...numbers);

4. 从数组中删除重复项

使用 : 创建不重复的新数组 Set

const uniqueArray = [...new Set([1, 2, 2, 3])];

5. 展平多维数组

该方法 展平嵌套数组:flat()

const nestedArray = [1, [2, [3, 4]]];
const flatArray = nestedArray.flat(2);

6. 将文本复制到剪贴板

您可以使用 Clipboard API 将文本复制到剪贴板:

function copyText(text) {
  navigator.clipboard.writeText(text);
}

7. 检查 Value 是否为数字

要检查值是否为有效数字,请使用 和 的组合:typeof!isNaN()

const isNumber = value => typeof value === 'number' && !isNaN(value);

8. 生成一个范围内的随机数

下面是一个在两个值之间生成随机数的函数:

const getRandom = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;

9. 将字符串转换为数字

使用 运算符 将字符串快速转换为数字:+

const num = +"42"; // 42

或者,您也可以使用 :parseInt()

const number = parseInt("42", 10);

10. 函数中的默认参数

在函数中设置默认参数值以避免未定义的值:

function greet(name = 'Guest') {
  console.log(`Hello, ${name}`);
}

11. 将 Arguments 对象转换为数组

在 JavaScript 函数中, 是一个可以转换为实际数组的类似数组的对象:arguments

function myFunc() {
  const argsArray = Array.from(arguments);
}

12. 去抖函数

去抖动可确保函数不会快速连续重复调用。下面是一个示例:

function debounce(func, delay) {
  let timeout;
  return function(...args) {
    clearTimeout(timeout);
    timeout = setTimeout(() => func.apply(this, args), delay);
  };
}

13. 限制函数

限制可确保在指定时间范围内最多调用一次函数:

function throttle(func, limit) {
  let lastFunc;
  let lastRan;
  return function(...args) {
    if (!lastRan) {
      func.apply(this, args);
      lastRan = Date.now();
    } else {
      clearTimeout(lastFunc);
      lastFunc = setTimeout(() => {
        if (Date.now() - lastRan >= limit) {
          func.apply(this, args);
          lastRan = Date.now();
        }
      }, limit - (Date.now() - lastRan));
    }
  };
}

14. 检查对象是否为空

使用 : Object.keys()

const isEmpty = obj => Object.keys(obj).length === 0;

15. 短路评估

使用 short-circuiting 有条件地赋值:

const message = user.isLoggedIn && "Welcome back!";

如果 为 , 则为字符串值分配。user.isLoggedIntruemessage

16. 对象属性速记

当属性名称与变量名称匹配时,您可以使用速记语法:

const name = "John";
const age = 25;
const person = { name, age };

17. 解构数组

解构数组以将值分配给变量:

const [first, second] = [10, 20];

18. Destructure 对象

从对象中提取属性并将其分配给变量:

const {name, age} = {name: "Jane", age: 30};

19. 模板字面量

使用模板文字轻松进行字符串插值:

const name = 'John';
const greeting = `Hello, ${name}!`;

20. 将 NodeList 转换为数组

您可以使用 : NodeListArray.from()

const nodeList = document.querySelectorAll('div');
const nodeArray = Array.from(nodeList);

21. 检查 Array 是否包含元素

用于 检查数组是否包含值:includes()

const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.includes('banana')); // true

22. 从数组中获取唯一值

您可以使用 :Set

const uniqueValues = Array.from(new Set([1, 2, 2, 3, 3]));

23. 查找对象属性

使用 和 检索对象的键和值:Object.keys()Object.values()

const obj = { name: 'Alice', age: 30 };
console.log(Object.keys(obj)); // ['name', 'age']
console.log(Object.values(obj)); // ['Alice', 30]

24. 合并对象

使用展开运算符合并对象:

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

25. 映射数组

用于 通过对每个元素应用函数来转换数组:map()

const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2); // [2, 4, 6]

26. 过滤数组

过滤数组以删除不需要的元素:

const numbers = [1, 2, 3, 4];
const evens = numbers.filter(num => num % 2 === 0); // [2, 4]

27. 承诺.all()

用于 并发处理多个异步任务:Promise.all()

Promise.all([fetch('/data1'), fetch('/data2')])
  .then(responses => {
    // Handle responses
  })
  .catch(error => console.error(error));

28. 将集合转换为数组

您可以使用 spread 运算符将 a 转换为数组:Set

const set = new Set([1, 2, 3]);
const array = [...set];

29. 对数组进行排序

按升序或降序对数字数组进行排序:

const numbers = [4, 2, 7];
numbers.sort((a, b) => a - b); // ascending
numbers.sort((a, b) => b - a); // descending

30. 填充字符串

填充字符串的开头或结尾以达到一定长度:

const str = '5';
const paddedStr = str.padStart(3, '0'); // "005"

31. 修剪空格

使用 、 和 删除空格:trim()trimStart()trimEnd()

const text = "  Hello  ";
console.log(text.trim()); // "Hello"

32. 检查字符串是否包含子字符串

用于 检查字符串是否包含特定子字符串:includes()

const sentence = "JavaScript is awesome";
console.log(sentence.includes("awesome")); // true

33. 查找子字符串的索引

用于 查找子字符串的位置:indexOf()

const sentence = "JavaScript is fun";
console.log(sentence.indexOf("fun")); // 14

34. 重复字符串

用于 重复字符串:repeat()

const str = "ha";
console.log(str.repeat(3)); // "hahaha"

35. 替换子字符串

用于 替换子字符串:replace()

const text = "JavaScript is fun";
const newText = text.replace("fun", "awesome");

36. 使用可选链接

可选的链接 () 有助于安全地访问深度嵌套的属性:?.

const user = { name: 'John' };
console.log(user?.address?.city); // undefined, no error

37. 将日期转换为区域设置字符串

使用 : 设置日期格式 toLocaleDateString()

const date = new Date();
console.log(date.toLocaleDateString('en-US')); // MM/DD/YYYY format

38. 检查 Value 是否为 Array

用于 检查值是否为数组:Array.isArray()

console.log(Array.isArray([1, 2, 3])); // true

39. 检查 DOM 中是否存在元素

用于 检查元素是否存在:document.querySelector()

const elementExists = !!document.querySelector('.my-element');

40. 获取当前时间戳

用于 获取当前时间戳:Date.now()

const timestamp = Date.now();

41. 用逗号格式化数字

用于 使用逗号设置数字格式:toLocaleString()

const number = 1234567;
console.log(number.toLocaleString()); // "1,234,567"

42. 将数字四舍五入到小数点后 2 位

用于 舍入数字:toFixed()

const number = 5.6789;
console.log(number.toFixed(2)); // "5.68"

43. 检查变量是否为 Undefined

检查变量是否为 :undefined

if (typeof variable === 'undefined') {
  // Handle undefined
}

44. 从数组中获取随机项

用于 从数组中检索随机项:Math.random()

const items = ['apple', 'banana', 'orange'];
const randomItem = items[Math.floor(Math.random() * items.length)];

45. 将箭头函数用于短函数

箭头函数提供简洁的语法:

const add = (a, b) => a + b;

46. 使用 Object.assign() 进行浅拷贝

用于 复制对象:Object.assign()

const original = { a: 1 };
const copy = Object.assign({}, original);

47. 使用 typeof 进行类型检查

用于 检查变量的类型:typeof

console.log(typeof 'Hello'); // "string"
console.log(typeof 42); // "number"

48. 动态属性名称

您可以使用方括号设置动态属性名称:

const key = 'name';
const obj = { [key]: 'John' };

49. 检查 nullish 值

使用 nullish 合并运算符 () 处理 或 值:??nullundefined

const value = user.age ?? 'Unknown';

50. 使用 console.table() 进行更轻松的调试

在控制台中显示表格数据 :console.table()

const users = [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }];
console.table(users);

结论

掌握这 50 个实用的 JavaScript 技巧将帮助您编写更好的代码并提高您解决问题的能力。在处理各种项目时将它们放在手边,您会发现您的工作效率得到了显着提高!祝您编码愉快!

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享