JavaScript展开运算符(...)用于将可迭代对象(如数组、字符串、Set等)展开为独立元素,在函数调用中替代apply(),支持与普通参数混合使用,但必须位于实参列表末尾。

JavaScript 展开运算符(Spread Operator)是三个英文句点 ...,它能把可迭代对象(如数组、字符串、类数组对象)或对象“展开”成独立的元素。在函数调用中,它的核心作用是**把一个数组或类数组结构“打平”,作为多个独立参数传给函数**,替代了过去常用的 apply() 方法。
以前调用函数时,如果参数已经存在数组里,得这样写:
Math.max.apply(null, [1, 5, 3]) // 5现在用展开运算符更直观:
Math.max(...[1, 5, 3]) // 5它等价于 Math.max(1, 5, 3),数组被“拆开”,每个元素变成一个实参。
立即学习“Java免费学习笔记(深入)”;
展开运算符不一定要独占全部参数,可以和普通参数、其他展开表达式组合:
myFunc('a', ...arr, 'z') —— 开头一个固定值,中间展开数组,结尾再加一个值console.log(...[1, 2], ...[3, 4]) → 输出 1 2 3 4
不只是数组,只要是实现了迭代协议的对象都可以展开:
console.log(...'hi') // h i(字符串逐字符展开)console.log(...new Set([1, 2, 2])) // 1 2(自动去重后展开)console.log(...document.querySelectorAll('div')) 可直接传给函数处理 DOM 节点列表单独对普通对象使用展开运算符会报错:
myFunc({...obj}) // ❌ 错误:对象不可迭代(在函数调用中)但这是常见误解——在函数调用中,... 只能作用于可迭代值;而 {...obj} 是对象展开,只在对象字面量或解构中合法,和函数调用无关。
以上就是javascript展开运算符是什么_它在函数调用中有什么作用的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号