Javascript 雄辩的JS示例并不';除了EJ沙盒,我不能在任何地方运行

Javascript 雄辩的JS示例并不';除了EJ沙盒,我不能在任何地方运行,javascript,methods,console.log,Javascript,Methods,Console.log,我刚刚打开了雄辩的JS来提高我的JavaScript技能。在这本书的开头,哈弗贝克展示了一个用二进制编写的程序,该程序用于将1到10之间的数字相加,然后吐出总数 然后,他将程序从二进制简化为一行JavaScript。下面是最后一段代码: console.log(sum(range(1, 10))); // ---> 55 我上下搜索了MDN,没有看到任何sum()或range()方法。他谈到了Eloquent的沙箱环境,有些代码可能无法在其他解释器中运行,但这让我很困惑 我理解这个程序的

我刚刚打开了雄辩的JS来提高我的JavaScript技能。在这本书的开头,哈弗贝克展示了一个用二进制编写的程序,该程序用于将1到10之间的数字相加,然后吐出总数

然后,他将程序从二进制简化为一行JavaScript。下面是最后一段代码:

console.log(sum(range(1, 10)));
// ---> 55
我上下搜索了MDN,没有看到任何
sum()
range()
方法。他谈到了Eloquent的沙箱环境,有些代码可能无法在其他解释器中运行,但这让我很困惑


我理解这个程序的目的,但我不知道他从哪里得到的
sum()
range()
。我是不是错过了什么/想得太多了?这纯粹是为了解释吗?

如果你访问的网页,你会看到他添加了一个单独的JavascriptFile,名为Intro.js

在这里您可以找到缺少的函数:

function range(start, end, step) {
  if (step == null) step = 1;
  var array = [];

  if (step > 0) {
    for (var i = start; i <= end; i += step)
      array.push(i);
  } else {
    for (var i = start; i >= end; i += step)
      array.push(i);
  }
  return array;
}

function sum(array) {
  var total = 0;
  for (var i = 0; i < array.length; i++)
    total += array[i];
  return total;
}
功能范围(开始、结束、步骤){
如果(步骤==null)步骤=1;
var数组=[];
如果(步骤>0){
对于(变量i=开始;i=结束;i+=步骤)
阵列推送(i);
}
返回数组;
}
函数和(数组){
var合计=0;
对于(var i=0;i

因此,您可以下载该js并将其包含到您的环境中。

我简直不敢相信我竟然没有想到要查看代码文件!我很感激Jeff我觉得我有点疯了Hahaha作者没有很好地解释可以在沙箱之外运行JavaScript的地方。如果作者能解释一下如何使用外部脚本文件将JavaScript与HTML相结合,那就更好了。这本书基本上是一本好书,但作者似乎完全忽略了JavaScript的这一方面,就好像它不存在一样。