[1][0] 的意思就是一个数组 [1] 它的 0 号位呀。 我把上面的代码这样改写一下你看能不能明白: const arr = [1] function f () {} // 如下两种写法等价 // 1. let [x = f()] = arr // 2. let x if (arr[0] === undefined) { x = f() } else { x = arr[0] } 如果这里能明白的话,继续往下看 惰性求值怎么理解呢,这样,我写下如果不是惰性求值的话,上面的写法 1 等价于什么: // 如果不是惰性求值,上面的写法 1 与下面的写法 3 等价 // 3. const defaultValue = f() let x if (arr[0] === undefined) { x = defaultValue } else { x = arr[0] } 区别就在于,惰性求值的情况下 f() 并非一定会执行。 希望对你有帮助
[1][0]
的意思就是一个数组[1]
它的0
号位呀。我把上面的代码这样改写一下你看能不能明白:
如果这里能明白的话,继续往下看
惰性求值怎么理解呢,这样,我写下如果不是惰性求值的话,上面的写法 1 等价于什么:
区别就在于,惰性求值的情况下
f()
并非一定会执行。希望对你有帮助