10个JavaScript编程小技巧
事前提醒:阅读本文存在不同想法时,可以在评论中表达,但请勿使用过激的措辞。
技巧1:使用解构赋值交换变量值
let a = 1;
let b = 2;
[a, b] = [b, a];
console.log(a); // 输出2
console.log(b); // 输出1
这种方式可以很方便地交换两个变量的值而不需要引入第三个变量。
技巧2:使用数组解构获取函数返回值
function getNumbers() {
return [1, 2, 3];
}
const [a, b, c] = getNumbers();
console.log(a); // 输出1
console.log(b); // 输出2
console.log(c); // 输出3
这种方式可以很方便地从函数获取多个返回值。
技巧3:使用默认参数
function greet(name = 'Guest') {
console.log(`Hello ${name}!`);
}
greet(); // 输出 Hello Guest!
greet('John'); // 输出 Hello John!
这种方式可以避免在函数中检查是否传递了参数,如果传递了则使用参数值,否则使用默认值。
技巧4:使用展开运算符合并数组
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const mergedArr = [...arr1, ...arr2];
console.log(mergedArr); // 输出 [1, 2, 3, 4, 5, 6]
这种方式可以很方便地将多个数组合并成一个数组。
技巧5:使用模板字面量
const name = 'John';
console.log(`Hello ${name}!`); // 输出 Hello John!
这种方式可以很方便地在字符串中插入变量值。
技巧6:使用箭头函数
const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers); // 输出 [2, 4, 6]
这种方式可以很方便地创建匿名函数,而且不需要使用function
关键字。
技巧7:使用对象解构
const person = {
name: 'John',
age: 30,
location: 'New York'
};
const { name, age } = person;
console.log(name); // 输出 John
console.log(age); // 输出 30
这种方式可以很方便地从对象中获取属性值,并将其赋值给变量。
技巧8:使用扩展运算符复制对象
const person = {
name: 'John',
age: 30,
location: 'New York'
};
const copiedPerson = { ...person };
console.log(copiedPerson); // 输出 {name: "John", age: 30, location: "New York"}
这种方式可以很方便地复制一个对象,而且不会影响原始对象。
技巧9:使用模板字面量创建多行字符串
const message = `Hello,
World!`;
console.log(message); // 输出 Hello, \n World!
这种方式可以很方便地创建包含多行文本的字符串。
技巧10:使用Promise.all()并行处理异步任务
当需要同时处理多个异步任务时,可以使用 Promise.all()
方法将所有的 Promise 对象包装成一个新的 Promise 对象。这个新的 Promise 对象在所有 Promise 对象都成功完成之后才会被 resolved(解决),或者当任意一个 Promise 对象失败时就会被 rejected(拒绝)。下面是一个示例代码:
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1');
}, 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 2');
}, 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 3');
}, 3000);
});
Promise.all([promise1, promise2, promise3])
.then(values => console.log(values))
.catch(error => console.log(error));
在上面的代码中,我们创建了三个 Promise 对象,每个对象都会在不同的时间间隔后成功 resolve,并返回不同的字符串。然后我们将这三个 Promise 对象作为参数传递给 Promise.all()
方法。Promise.all()
方法返回一个新的 Promise 对象,它会等待所有的 Promise 对象都完成后再被解决。在这个例子中,我们通过 .then()
方法输出了所有 Promise 对象成功执行后的结果,也可以通过 .catch()
方法来处理 Promise 对象执行失败的情况。
转载自:https://juejin.cn/post/7236748368776413221