JavaScript, что вызывает «неопределенный» в моем коде? [Дубликат]

1

Я начал изучать JavaScript несколько дней назад, и один из циклов for в простой части кода, который я пишу, вызывает undefined в предупреждении. Я понимаю, что это результат переменной неопределенного типа. Проблема в том, что я не знаю, какую часть моего кода мне нужно исправить. Вот фрагмент кода:

var message;   
for (var songs = 0; songs < playlist.length; songs++) {
    message += '\n' + (songs+1) + '. ' + playlist[songs] + '\n';
}

alert(message);

Он отображает undefined прямо над строкой с первым элементом массива playlist.

Я попытался удалить элементы переменной message одному, чтобы проверить, какой из них мог вызвать ее. Я также попытался добавить: message = String(message); после цикла for.

Я буду очень благодарен за помощь/объяснение моей проблемы.

Теги:
undefined

2 ответа

4
Лучший ответ

Вы не инициализировали свою переменную message со значением, поэтому она не undefined.

Установите его на начальное значение, например:

var message = '';
  • 0
    Хороший улов, это проблема наверняка.
  • 0
    Большое спасибо, Врокар. Это было оно!
0

Вы инициализируете message как неопределенное значение, а затем добавляете к нему - в результате строка "undefined", когда это значение принудительно вводится в строку.

Вместо этого попробуйте инициализировать его как пустую строку:

var playlist = ["foo","bar","bar"] 

var message = "";   // <-- here
for (var songs = 0; songs < playlist.length; songs++) {
    message += '\n' + (songs+1) + '. ' + playlist[songs] + '\n';
}

alert(message);
  • 1
    «Вы инициализируете сообщение как нулевое значение» - Нет. Оно не undefined . Это отличается от null .
  • 0
    Вы правы, неаккуратная терминология с моей стороны. Исправлю.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню