Javascript Chrome控制台因使用i--而不是i-1而崩溃

Javascript Chrome控制台因使用i--而不是i-1而崩溃,javascript,fibonacci,Javascript,Fibonacci,所以我在用javascript在Fibonacci series finder上制作了一个程序,每当我在程序中使用I-而不是I-1控制台崩溃时,我正在寻找一个关于为什么崩溃的答案,I-和I-1做同样的事情,下面是我的代码:- 函数fibonacciron{ var输出=[]; 如果n==0{ 返回输出; }如果n==1,则为else{ 输出0.0; 返回输出; }如果n==2,则为else{ 输出0.0,1; 返回输出; }否则{ 输出0.0,1; 对于var i=1;i如果使用i-,则旧值将用

所以我在用javascript在Fibonacci series finder上制作了一个程序,每当我在程序中使用I-而不是I-1控制台崩溃时,我正在寻找一个关于为什么崩溃的答案,I-和I-1做同样的事情,下面是我的代码:-

函数fibonacciron{ var输出=[]; 如果n==0{ 返回输出; }如果n==1,则为else{ 输出0.0; 返回输出; }如果n==2,则为else{ 输出0.0,1; 返回输出; }否则{ 输出0.0,1;
对于var i=1;i如果使用i-,则旧值将用于计算,之后i的值将减少1。
但当您使用i-1时,它首先会减小,这是您在输出数组中查找的值。

如果使用i-,则旧值将用于计算,之后i的值将减小1。
但是,当您使用i-1时,它首先会减小,这是您在输出数组中查找的值。

i-与i=i-1相同
i-1是一个等式,你需要它来等于某个东西,i-与i=i-1相同
i-1是一个等式,你需要它来等于某个值,让我们用i-来看看for循环:


对于var i=1;i让我们看一看使用i-的for循环:


对于var i=1;i问题是for中i的递减导致了infinitiny循环。然而,如果你只使用i的值减去1,你就没有给i赋值。

问题是for中i的递减导致了infinitiny循环。然而,如果你只使用i的值减去1,你就不是给i签名任何新值。

但是,理论上,-我应该工作?我在这里尝试了,但它没有。这里的问题是,这变成了无穷循环,因为我-,我会工作,但仍然是一个糟糕的解决方案,因为我们得到无穷循环是的,这是我注意到的。但是,理论上,-我应该工作?我在这里尝试了,它没有问题,我这变成无穷循环是因为我-,我可以工作,但仍然是一个糟糕的解决方案,因为我们得到无穷循环是的,这就是我在数组索引中提到的-,它仍然会将i的实际值减少1吗?顺便说一句,我理解答案,谢谢你的帮助。@Samst是的,我-,将减少i的值,无论在哪里代码位于。正如您所发现的,修改for循环索引通常是一个坏主意。是的,我的老师在她的解决方案中也使用了array.length-1。在我下次使用的课程中,我将始终记住这一点。我在数组索引中使用了我-,它还会将i的实际值减少1吗?顺便说一句,我理解回答谢谢您的帮助。@Samst是的,我-将减少i的值,无论代码位于何处。正如您所发现的那样,修改for循环索引通常不是一个好主意。是的,我的老师在她的解决方案中也使用了array.length-1。在我下次使用的课程中,我将始终记住这一点。这可能与i有关-返回i的值,在下一步中执行-运算符,因此,i的值接收-1。这是由优先运算符实现的。对于i-1,在for中接收的值实际上是i-1。这可能与i有关-返回i的值,在下一步中执行-运算符,因此,i的值接收-1。这是由优先级运算符。对于i-1,在for中接收的值实际上是i-1。