如何在不声明参数的情况下实现支持无限参数的JavaScript函数?
如何实现支持无限参数的JavaScript函数?
你的代码里存在未声明变量的问题(params和param都没有定义),所以无法正常运行。下面提供两种可靠的实现方式:
方法1:剩余参数语法(ES6+ 推荐)
ES6引入的剩余参数...args可以直接将所有传入的参数收集为一个数组,写法简洁直观,是当前的推荐方案:
function func(...args) { // 用for循环遍历 for(let i = 0; i < args.length; i++){ console.log(args[i]); } // 也可以用数组方法简化遍历 args.forEach(item => console.log(item)); }
说明:...args会自动把所有传入的参数打包成真正的数组,你可以直接使用任何数组方法操作它。
方法2:arguments对象(兼容ES5及更早环境)
在普通函数(非箭头函数)内部,arguments是一个内置的类数组对象,包含了所有传入的参数。如果需要使用数组方法,需要先将其转换为真正的数组:
function func() { // 方式1:将arguments转为数组 const args = Array.from(arguments); args.forEach(item => console.log(item)); // 方式2:直接遍历类数组的arguments for(let i = 0; i < arguments.length; i++){ console.log(arguments[i]); } }
注意:箭头函数中不存在arguments对象,所以这种方法仅适用于传统的函数声明/表达式。
内容的提问来源于stack exchange,提问作者Jerico
相关产品推荐
相关产品推荐

