连接两个字符串时+ =的作用是什么? (Eloquent JS FizzBu​​zz)

时间:2014-12-22 04:53:13

标签: javascript string fizzbuzz

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);
}

有人可以解释+ =运算符是如何在&#34; Fizz&#34;和&#34; Buzz&#34;当数字可以被3和5整除时,它在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);
 }

2 个答案:

答案 0 :(得分:2)

output += "Fizz";

只是

的简写版本
output = output + "Fizz";

它会将output中的值与Fizz连接起来,创建一个新字符串并将其存储回output

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

根据逻辑,如果数字可以被3整除,那么output将变为Fizz,因为它已经为空。如果该号码也可以被5整除,则output将变为FizzBuzzFizz + Buzz)。

答案 1 :(得分:0)

output += "Fizz";

的简写
output = output + "Fizz";

保留变量output可以实现&#34; Fizz&#34;和&#34; Buzz&#34;适用于循环迭代中的数字,需要进行组合。 每个循环都会重置output