You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

复制自《Eloquent JavaScript》的代码报错ReferenceError: range is not defined,求助

解决ReferenceError: range is not defined的问题
  • 问题根源:你使用的range不是JavaScript内置函数,它是《Eloquent JavaScript》该章节前面示例中自定义的工具函数,和浏览器的DOM Range对象完全不是一回事——后者是用来操作文档选择范围的,不能生成数字序列,所以new Range()毫无作用。

  • 解决方案:先补上书中定义的range函数,再运行你的代码。

书中的range函数实现如下(用于生成从start到end-1的数字数组):

function range(start, end) {
  let array = [];
  for (let i = start; i < end; i++) {
    array.push(i);
  }
  return array;
}
  • 完整可运行代码:
function range(start, end) {
  let array = [];
  for (let i = start; i < end; i++) {
    array.push(i);
  }
  return array;
}

function repeat(n, action) {
  for (let i = 0; i < n; i++) {
    console.log(action(...range(0, i)));
  }
}
repeat(5, Math.max);

运行后控制台会输出:

-Infinity
0
1
2
3

内容的提问来源于stack exchange,提问作者xuan xose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 16:02:14