for (var n = 1; n <= 100; n++) {
  var output = "";
  if (n % 3 == 0)
    output += "Fizz";
  if (n % 5 == 0)
    output += "Buzz";
  console.log(output || n);
}


有人可以解释当数字被3和5整除时,前面的+ =运算符“ Fizz”和“ Buzz”如何在FizzBu​​zz的组合中发挥作用?

我的初始代码如下,产生了相同的结果:

 for (var number = 1; number <= 100; number++)

 if (number % 3 == 0 && number % 5 == 0) {
    number == console.log("FizzBuzz");
 }

 else if (number % 3 == 0) {
    number == console.log("Fizz");
 }

 else if (number % 5 == 0) {
    number == console.log("Buzz");
 }

 else {
    console.log(number);
 }

最佳答案

output += "Fizz";


只是的简写形式

output = output + "Fizz";


它将output中的值与Fizz串联在一起,创建一个新字符串并将其存储回output中。

重要的是,它创建了一个新的String对象,因为String对象是不可变的。

按照逻辑,如果数字可被3整除,则output将变为Fizz,因为它已经为空。如果该数字也可被5整除,则output将变为FizzBuzzFizz + Buzz)。

10-07 13:46