JavaScript编写按输入生成数组的函数时出现致命错误,求问题排查
问题排查及修复方案
错误原因
- 核心错误是
for循环语法不符合JavaScript规范:JavaScript标准for循环的语法结构为for(初始化语句; 条件判断语句; 循环后执行语句),三个部分可留空但分号分隔的结构不能乱。你的代码中将条件判断start <= limit放到了第一个初始化位,自增逻辑start++放到了第二个条件判断位,直接触发语法致命错误。
修复后代码
function arrayForm(start, limit) { let array = []; // start已经通过函数参数完成初始化,所以初始化位留空,保留分号分隔结构即可 for (; start <= limit; start++) { array.push(start); } return array; } console.log(arrayForm(1,10)); // 输出 [1,2,3,4,5,6,7,8,9,10]
补充优化建议
如果需要避免修改入参start带来的副作用,可以在循环初始化位声明局部变量承接初始值:
for (let i = start; i <= limit; i++) { array.push(i) }
内容的提问来源于stack exchange,提问作者echo
相关产品推荐
相关产品推荐

