Javascript 字符串类型错误:变量未定义

Javascript 字符串类型错误:变量未定义,javascript,Javascript,我正在用javascript和html画布编写一个小程序。这是我的第一个javascript程序。它将使龙曲线的事情。但是我得到了这个错误:TypeError:old是未定义的。我不是第一个提出这个问题的人,但在阅读了其他问题后,我仍然找不到解决办法 下面的代码是程序中引发错误的部分。 那么为什么它会给出一个错误呢 <script> var r = 'r'; var l = 'l'; var old = r; var newer = old; var iteration = 10

我正在用javascript和html画布编写一个小程序。这是我的第一个javascript程序。它将使龙曲线的事情。但是我得到了这个错误:
TypeError:old是未定义的
。我不是第一个提出这个问题的人,但在阅读了其他问题后,我仍然找不到解决办法

下面的代码是程序中引发错误的部分。 那么为什么它会给出一个错误呢

<script>
var r = 'r';
var l = 'l';

var old = r;
var newer = old;

var iteration = 10;
var cycle = 1;

while (cycle < iteration){
  newer = (old) + (r);
  old = old.reversed;

  var oldstring = old.split("");  <!-- here is the error -->

  cycle++;
}
</script>

var r='r';
变量l='l';
var old=r;
var较新=旧;
var迭代=10;
var循环=1;
while(循环<迭代){
新的=(旧的)+(r);
old=old.reversed;
var oldstring=old.split(“”);
循环++;
}
“reversed”不是JavaScript中的默认函数

您需要创建并添加如下函数:

function reverse(s){
  return s.split("").reverse().join("");
}
然后更换
old=old.reversed带<代码>旧=反向(旧)


这应该可以解决问题。

是的,如果他真的想,他也可以说old.reversed()

我不能从你发布的代码中重现这个错误,但我确实得到了一个关于迭代未定义的错误在代码的顶部,什么是旧的。你应该做什么?@BarryDoyle我换了帖子。是的,while循环的末尾(和内部)有cycle+。@BarryDoyle old.reverse应该反转旧字符串。因此,旧的第一个字母将是最后一个等。他甚至没有将
reverse
作为函数调用,而是将其用作属性。最后一件事:您可能想澄清“默认函数”
reverse()
而不是
reversed()
,这是什么意思,而且你真的应该编辑你已经接受的答案,而不是写另一个——特别是在这种情况下,因为这是一个更好的答案(如果你修复了函数名)。手机对我们来说真的很糟糕,所以它根本不了解环境。