这两个循环有什么区别?为什么一个起作用而另一个不起作用?

时间:2019-04-04 03:56:32

标签: javascript string loops for-loop

我想知道为什么当我添加一个值为空string(“)的变量时,该循环有效,但是当我删除它时,该循环似乎并没有在该函数中循环。 ..

这是第一个循环:

function laugh(num) {
  var laugh = "ha";
  for (var i=0; i<=num; i++){
     laugh;
  }
  return laugh + "!";
}
console.log(laugh(3)); 

这是第二个:

function laugh(num) {
  var string = "";
  var laugh = "ha";
  for (var i=1; i<=num; i++){
     string += laugh;
  }
  return string + "!";
}
console.log(laugh(3));

第一个返回“ ha!”而第二个则返回正确数量的ha ...即“ haha​​ha!”

为什么添加一个空字符串使其起作用? 初学者...我真的不希望继续下一课,直到我完全了解正在发生的事情。非常感谢!

1 个答案:

答案 0 :(得分:2)

那是因为您在第一个循环中所做的只是一条语句:

laugh;
//Equivalent to
"ha";

在第二个循环中,您将一个新字符串连接到string

string += laugh;

您需要执行此连接,否则它将仅返回ha!

function laugh(num) {
  var laugh = "ha";
  for (var i = 0; i <= num; i++) {
    laugh += "ha";
  }
  return laugh + "!";
}
console.log(laugh(3));