Избегание «undefined» при использовании forEach on on array [duplicate]

Использовать ';' как разделитель. Если переменные среды установлены правильно, вы должны увидеть свои настройки. Если ваши PATH и CLASSPATH верны, окна должны распознавать эти команды. Вам не нужно перезагружать компьютер при установке Java.

48
задан Bergi 29 July 2015 в 15:16
поделиться

5 ответов

Если вы запускаете console.log() из JS-файла, эту строку undefined не следует добавлять.

Если вы запускаете console.log() из самой консоли, это имеет смысл. Вот почему: в консоли вы можете ввести имя переменной (например, попробуйте ввести window), и она печатает информацию об этом. Когда вы запускаете какую-либо функцию void (например, console.log) из консоли, в этом случае также выводится информация о возвращаемом значении undefined.

Я тестировал оба случая на своем Chrome (Mac ver 23.0.1271.101), и я вижу строку undefined, когда я запускаю ее внутри консоли. Этот undefined также появляется, когда я пишу эту строку в консоли: var bla = "sdfdfs"

66
ответ дан talkol 21 August 2018 в 15:48
поделиться
  • 1
    Спасибо за ответ. Я запускаю его из самой консоли, я пытался остановить все расширения, но получаю тот же результат. – N. Chamaa 31 January 2013 в 22:17
  • 2
    Ну, это ожидаемое поведение. Все работает так, как должно. Вы можете включить расширения. :) Просто запустите console.log из JS-файла, и вы не увидите этого. Почему вы все равно запускаете console.log с консоли? Вы можете просто ввести любое имя переменной без console.log – talkol 31 January 2013 в 22:24
  • 3
    но это было не раньше, вот почему !! – N. Chamaa 31 January 2013 в 22:40
  • 4
    Возможно, ваш Chrome был обновлен, и это поведение началось в более новых версиях. Поскольку то же самое происходит в моем Chrome (на Mac), я очень сомневаюсь, что это проблема. – talkol 31 January 2013 в 22:47

Следуйте рисунку, чтобы решить эту проблему:

Ctrl + Shift + J

[/g0]

4
ответ дан ChesuCR 21 August 2018 в 15:48
поделиться

Хотя ответ talkol в порядке, я пытаюсь выразить его более прямо:

JavaScript разработан как динамический язык, что означает, что тип (строка, void, boolean ...) функции возвращает значение не определено заранее. Если функция не использует оператор return или пустой оператор return без значения, JavaScript автоматически возвращает undefined. Это означает, что в JavaScript каждая функция возвращает что-то, по крайней мере, неопределенное.

Таким образом, функция console.log() в консоли Chrome либо не использует, либо пустой оператор return, так что возвращаемое значение этой функции не определено. Это возвращаемое значение функции также отображается в консоли Chrome.

[Если кто-то знает, где найти определение функции console.log() в исходном коде Google Chrome, прокомментируйте ссылку, тогда мы сможем даже идти дальше и смотреть на реальный код, было бы хорошо.]

Источники:

28
ответ дан Community 21 August 2018 в 15:48
поделиться
  • 1
    Ссылка на другие сообщения в порядке, но это не полный ответ, поэтому он лучше подходит для комментария к ответу, на который вы ссылаетесь. – Dan 11 February 2014 в 22:37
  • 2
    Я пытался это сделать, но я не могу прокомментировать из-за отсутствия достаточной репутации («У вас должно быть 50 репутации для комментариев»), поэтому я подумал, что использовать «неоптимальный» способ ответа вместо комментирования был бы лучше, чем не публиковать. – Paul Vincent Beigang 15 February 2014 в 16:54
  • 3
    Это честно. Я не могу удалить свой downvote, не редактируя сообщение. Размышляйте о том, что находится в этой ссылке в ответе? Если вы можете это сделать, тогда я могу изменить свой голос :) – Dan 15 February 2014 в 23:18
  • 4
    Спасибо Дэн за ваше терпение, сделал это, хорошо? :) – Paul Vincent Beigang 16 February 2014 в 22:36

Если вы используете console.log для испускания нескольких значений в одной строке, вот хакерская альтернатива:

var1 + ' ' + var2 + ' ' + var...

(Лучше приветствуются идеи, это может взорваться при определенных обстоятельствах)

-2
ответ дан i336_ 21 August 2018 в 15:48
поделиться

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

console.log('I hate seeing the next line stating the obvious.')
I hate seeing the next line stating the obvious.
undefined
log = function(l){return l}
function log()
if(1 === 2){console.log('1 is not equal to 2.')}else{log('No Shit Sherlock.')}
"No Shit Sherlock."
0
ответ дан Reinout van Kempen 21 August 2018 в 15:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: