Подтвердить что ты не робот

Chrome/Firefox console.log всегда добавляет строку, обозначающую undefined

Каждый раз, когда выполняется console.log, строка строки undefined добавляется в выходной журнал.

Случается как в Firefox, так и в Chrome в Windows и Linux.

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Источники:

Ответ 3

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

Ctrl + Shift + J

Ответ 4

То, что вы можете сделать, это просто создать свою собственную функцию 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."

Ответ 5

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

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

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