0
В настоящее время я изучаю основы циклов «while» и «for» в JS. В цикле while ниже я пытаюсь распечатать каждую отдельную букву имени переменной, однако первая буква строки печатает неопределенные, а оставшиеся буквы печатаются правильно. Любая помощь в понимании этого очень ценится.JavaScript Хотя цикл возвращает «undefined» для первой буквы в массиве
var name = "Hello World!";
var i = [];
while (i < name.length) {
console.log (name[i]);
i ++;
}
for (var j = 0; j < name.length; j++) {
console.log(name);
}
Результаты:
undefined
e
l
l
o
W
o
r
l
d
!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Почему вы инициализируете 'i' пустым' [] 'массивом вместо' 0'? Когда вы делаете 'name [i]', вы в основном выполняете 'name [" "]', что было бы 'undefined'. Затем приращение изменяет значение '' '' '' '' '', потому что '' '' '' 'принудительно заполняет пустой массив до числа' 0'. –
Если честно ... Я понятия не имею, почему я так сделал. Думаю, теперь я понимаю. Итак, если он равен пусту, то заменяет первую букву и пустой слот правильно? – ataleb52
Вид. Все свойства объекта в JavaScript являются строками, поэтому, когда вы делаете o'name [i] ', он принимает любое значение' i' и преобразует его в строку. Для пустого массива он преобразуется в пустую строку. Пустая строка является допустимым свойством, но, безусловно, не будет иметь значения. Таким образом, он в основном извлекает свойство, которого не существует. –