JavaScript的两个小技巧

在 YouTube 上看了两个关于 JavaScript 的教学视频,介绍了一些使用技巧,这里挑选了两个做一个笔记

视频链接:


加速异步执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const asyncFn = async (arg) => arg

const faster = async () => {
const a = asyncFn('a')
const b = asyncFn('b')
return await Promise.all([a, b])
}

const common = async () => {
const a = await asyncFn('a')
const b = await asyncFn('b')
return [a, b]
}

console.time()
common().then(console.log)
console.timeEnd()

console.time()
faster().then(console.log)
console.timeEnd()

执行之后,第一个比第二个要慢一倍


模板字符串 tag

1
2
3
4
5
6
7
8
9
function strTag(str, ...args) {
console.log(str, args)

return "string has changed!"
}

const args = [1, 10, 20, 30]

console.log(strTag`part1 ${args[0]} part2 ${args[1]} part3 ${args[2]} part4 ${args[3]} part5`)

输出结果如下:

1
2
[ 'part1 ', ' part2 ', ' part3 ', ' part4 ', ' part5' ] [ 1, 10, 20, 30 ]
string has changed!