0

comma我对在 JavaScript 代码中使用OR的区别有疑问semicolon

它们是否存在差异并影响代码的工作方式?

在下面的代码中,我更改了 var 定义后的分号,该分号fib具有逗号值0,但代码没有运行。

有人可以解释一下吗?

它发生的斐波那契的完整代码在这里:

<script>
    document.write("<h2>Числа Фибоначчи </h2>");
    for (i = 0, j = 1, k = 0, fib = 0; i < 50; i++, fib = j + k, j = k, k = fib) {
        document.write("Fibonacci (" + i + ") = " + fib);
        document.write("<br>");
    }
</script>
4

3 回答 3

0

之前的答案确实是正确的,但我认为这不是关于for- 它是关于逗号,它实际上是一个运算符:

逗号运算符计算其两个操作数(从左到右)并返回第二个操作数的值。- MDC

如果您想了解更多信息:Angus C. 在他的博客中详细解释了它的作用。

于 2013-03-19T21:02:39.560 回答
0

for包含 3 个表达式:

  • 初始化(在循环之前运行),
  • 循环测试结束(在每次迭代之前运行),
  • 和迭代后的语句。

javascript 中的语句由 . 分隔;。如果将 更改;为 a ,,则不会结束 init 语句。

于 2013-03-19T20:39:28.383 回答
0

可能让您感到困惑的部分是“正常”for循环需要三个语句,如下所示:

for (var i=0; i<5; i++)
  {
  x=x + "The number is " + i + "<br>";
  }

但是您的示例将这些表达式替换为逗号分隔的参数。

var i=0->i = 0, j = 1, k = 0, fib = 0

i++->i++, fib = j + k, j = k, k = fib

顺便说一句,这是很糟糕的代码,阅读起来非常困难,而且更难维护。不要使用它。

于 2013-03-19T20:45:27.327 回答