菜鸟笔记007 [...c(e), ...d(i)]数组的新用法
JavaScript 的 展开语法(Spread Syntax)
n = [...c(e), ...d(i)]
;
解释:
c(e)
和d(i)
:这是两个函数调用,
c
和d
是函数,分别接收参数e
和i
。假设这两个函数返回的是 数组(如果不是数组会报错)。
...c(e)
和...d(i)
:...
是展开语法,它会将数组“展开”为逗号分隔的元素列表。例如,如果
c(e)
返回[1, 2]
,...c(e)
就相当于1, 2
。
[...c(e), ...d(i)]
:这里用
[]
创建了一个新数组,内容是将c(e)
和d(i)
返回的两个数组的所有元素合并到一起。例如:
如果
c(e)
返回[1, 2]
,d(i)
返回[3, 4]
,那么
[...c(e), ...d(i)]
的结果是[1, 2, 3, 4]
。
最终赋值:
合并后的新数组会被赋值给变量
n
。
等价写法(传统方式):
如果不使用展开语法,可以用 concat
实现相同功能:
n = c(e).concat(d(i));
注意事项:
c(e)
和d(i)
必须返回可迭代对象(通常是数组),否则会报错(如TypeError
)。展开语法是 ES6(ES2015)的特性,在现代浏览器和 Node.js 中广泛支持。
示例:
const c = (x) => [x, x + 1]; // 返回数组 [x, x+1]
const d = (y) => [y * 2]; // 返回数组 [y*2]const e = 1, i = 3; const n = [...c(e), ...d(i)]; // 展开后是 [1, 2, 6] console.log(n); // 输出: [1, 2, 6]
总结:这行代码的作用是 合并两个函数返回的数组,并将结果赋值给 n
。