JavaScript - в то время как цикл работает бесконечно с перерывами? - PullRequest
0 голосов
/ 07 мая 2018

Если я запускаю в консоли следующую функцию (с целым числом от 1 до 10), это приводит к сбою браузера.

function getStr(length) {
  var random = Math.round(Math.random() * Math.pow(10, length)).toString();
   while(random.length < length) {
       random = random.padEnd('1');
   }
   return random;
}

Я не могу понять, почему.

1 Ответ

0 голосов
/ 07 мая 2018

У вас нет возможности изменить значение random.length, вырваться из цикла или изменить условие while. Вам нужен какой-то способ выбраться из этого, иначе он зациклится навсегда.

function getStr(length) {
    var random = Math.round(Math.random() * Math.pow(10, 
    length)).toString();
    while(random.length < length) {
        console.log(random.length, ‘-’, length);
        length = random.length + 1; //Change the value of length
        // OR you can just break out of the loop
        break; // Break out of the loop
    }
    return random;
}

Вот ресурс, чтобы узнать больше о циклах JavaScript while .

...