В чем разница между этими двумя циклами? Почему один работает, а другой нет? - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу знать, почему, когда я добавляю переменную со значением пустой строки ("), цикл работает, но когда я его удаляю, цикл ... кажется, не зацикливается внутри этой функции. ..

Вот первый цикл:

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

Первый возвращает "ха!" в то время как второй возвращает правильное количество ха ... что "хахаха!"

почему при добавлении пустой строки это работает? Кстати, начинающий ... Я действительно не хочу переходить к следующему уроку, пока полностью не пойму, что происходит. Большое спасибо!

1 Ответ

2 голосов
/ 04 апреля 2019

Это потому, что все, что вы делаете в первом цикле, это утверждение:

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...