2016-07-26 5 views
0

Почему существует 11-я итерация, и почему «undefined» напечатано во время этого?Почему этот цикл не задан?

var num = 10; 
var start = 0; 
function x(){ 
    while (start <= num){ 
     console.log(start + '<br>'); 
     start++; 
    } 
} 
console.log(x()); 
+1

0 ... 10 is 11 итераций –

+0

вы правы ... я имел в виду 12-й – SummerBoy

+0

нет 12-й итерации –

ответ

-1

Поскольку x() ничего не возвращает, когда вы используете console.log().

var num = 10; 
 
var start = 0; 
 
function x(){ 
 
    while (start <= num){ 
 
     console.log(start); 
 
     start++; 
 
    } 
 
} 
 
x();

Если вы что-то вернуть в этой функции, то он будет выводить возвращение.

var num = 10; 
 
var start = 0; 
 
function x(){ 
 
    while (start <= num){ 
 
     console.log(start); 
 
     start++; 
 
    } 
 
    return 'END'; 
 
} 
 
console.log(x());

Теперь функция возвращает 'END'.

+0

Что делать, если бы мы отображали только цифры от 0 до 9? * return start * отображает до 11, а * return num * отображает 10 дважды. Confused:/ – SummerBoy

2

Поскольку функция x не возвращает ничего, и вы console.log -ную свой выход.

3

Функция x не возвращает значение - следовательно, часть undefined. Есть 11 итераций, считающихся от 0 до 10, так как условие равно start <= 10.

0

Поскольку x() не имеет возвращаемого значения, и существует 11 итераций от 0 до 10. Если вы измените start <= num на start < num, у вас будет только 10 итераций. Кроме того, вместо ведения журнала x() вы можете просто выполнить его самостоятельно, который будет запускать код и записывать 10 итераций.

0

Все функции в javascript, которые не имеют оператора return, возвращают undefined по умолчанию.

+0

Отличный ответ! Теперь я знаю почему :) Спасибо – SummerBoy

Смежные вопросы