一句话解释...arr的作用是把数组拆开变成一个个独立的元素对比有...vs 没...letarr[1,2,3];// ❌ 没有 ... 传进去的是整个数组Math.min(arr);// 等同于Math.min([1, 2, 3])// 结果NaN ❌Math.min 不认识数组// ✅ 有 ... 把数组拆开成独立元素Math.min(...arr);// 等同于Math.min(1, 2, 3)// 结果1 ✅展开过程可视化letarr[12.50,3.25,9.75];// ...arr 展开后Math.min(...arr);// 变成了Math.min(12.50,3.25,9.75);// 再配合 map(Number) 变成Math.min(12.50,3.25,9.75);// 结果3.25 ✅更多对比例子代码等同于结果Math.min([1, 2, 3])Math.min([1, 2, 3])❌NaNMath.min(...[1, 2, 3])Math.min(1, 2, 3)✅1Math.max(5, 8, 2)本身就是多个参数✅8Math.max(...[5, 8, 2])Math.max(5, 8, 2)✅8为什么需要...因为Math.min()/Math.max()期望接收的是多个独立的数字参数而不是一个数组// ✅ 这种写法 Math.min 能看懂Math.min(1,2,3,4,5);// ❌ 这种写法 Math.min 看不懂Math.min([1,2,3,4,5]);// ✅ 用 ... 把数组打散成独立参数Math.min(...[1,2,3,4,5]);...的其他用法 1. 合并数组leta[1,2];letb[3,4];letc[...a,...b];// [1, 2, 3, 4] 2. 复制数组letarr[1,2,3];letcopy[...arr];// [1, 2, 3]新数组不影响原数组 3. 传参给函数functionsum(a,b,c){returnabc;}letnums[1,2,3];sum(...nums);// 等同于 sum(1, 2, 3) → 6总结写法含义能用吗Math.min(arr)传一个数组进去❌NaNMath.min(...arr)把数组拆开成独立元素✅ 正确Math.min(...arr.map(Number))先转数字再拆开✅✅ 最推荐记忆口诀... “拆开”把数组[1, 2, 3]拆成1, 2, 3没有...就是把整个数组当一个东西扔进去函数不认识
`...` 展开运算符(Spread Operator)详解
一句话解释...arr的作用是把数组拆开变成一个个独立的元素对比有...vs 没...letarr[1,2,3];// ❌ 没有 ... 传进去的是整个数组Math.min(arr);// 等同于Math.min([1, 2, 3])// 结果NaN ❌Math.min 不认识数组// ✅ 有 ... 把数组拆开成独立元素Math.min(...arr);// 等同于Math.min(1, 2, 3)// 结果1 ✅展开过程可视化letarr[12.50,3.25,9.75];// ...arr 展开后Math.min(...arr);// 变成了Math.min(12.50,3.25,9.75);// 再配合 map(Number) 变成Math.min(12.50,3.25,9.75);// 结果3.25 ✅更多对比例子代码等同于结果Math.min([1, 2, 3])Math.min([1, 2, 3])❌NaNMath.min(...[1, 2, 3])Math.min(1, 2, 3)✅1Math.max(5, 8, 2)本身就是多个参数✅8Math.max(...[5, 8, 2])Math.max(5, 8, 2)✅8为什么需要...因为Math.min()/Math.max()期望接收的是多个独立的数字参数而不是一个数组// ✅ 这种写法 Math.min 能看懂Math.min(1,2,3,4,5);// ❌ 这种写法 Math.min 看不懂Math.min([1,2,3,4,5]);// ✅ 用 ... 把数组打散成独立参数Math.min(...[1,2,3,4,5]);...的其他用法 1. 合并数组leta[1,2];letb[3,4];letc[...a,...b];// [1, 2, 3, 4] 2. 复制数组letarr[1,2,3];letcopy[...arr];// [1, 2, 3]新数组不影响原数组 3. 传参给函数functionsum(a,b,c){returnabc;}letnums[1,2,3];sum(...nums);// 等同于 sum(1, 2, 3) → 6总结写法含义能用吗Math.min(arr)传一个数组进去❌NaNMath.min(...arr)把数组拆开成独立元素✅ 正确Math.min(...arr.map(Number))先转数字再拆开✅✅ 最推荐记忆口诀... “拆开”把数组[1, 2, 3]拆成1, 2, 3没有...就是把整个数组当一个东西扔进去函数不认识