Каждый раз, когда выполняется console.log
, строка строки undefined
добавляется в выходной журнал.
Случается как в Firefox, так и в Chrome в Windows и Linux.
Каждый раз, когда выполняется console.log
, строка строки undefined
добавляется в выходной журнал.
Случается как в Firefox, так и в Chrome в Windows и Linux.
Если вы используете console.log()
из JS файла, эту строку undefined
не следует добавлять.
Если вы используете console.log()
из самой консоли, это имеет смысл. Вот почему: в консоли вы можете ввести имя переменной (например, попробуйте ввести window
) и распечатает информацию об этом. Когда вы запускаете какую-либо функцию void (например, console.log) из консоли, она также выводит информацию о возвращаемом значении undefined
в этом случае.
Я тестировал оба случая на своем Chrome (Mac ver 23.0.1271.101), и действительно, я вижу строку undefined
, когда я запускаю ее внутри консоли. Этот undefined
также появляется, когда я пишу эту строку в консоли: var bla = "sdfdfs"
Хотя ответ Talkol в порядке, я пытаюсь выразить его более прямо:
JavaScript разработан как динамический язык, что означает, что тип (строка, void, boolean...) возвращаемого значения функции не задан заранее. Если функция не использует оператор return или пустой оператор return без значения, JavaScript автоматически возвращает undefined. Это означает, что в JavaScript каждая функция возвращает что-то, по крайней мере undefined.
Таким образом, функция console.log()
в консоли Chrome либо не использует, либо возвращает пустой оператор return, поэтому возвращаемое значение этой функции равно undefined. Это возвращаемое значение функции также отображается на консоли Chrome.
[Если кто-то знает, где найти определение функции console.log()
в исходном коде Google Chrome, прокомментируйте ссылку, тогда мы сможем даже пойти дальше и посмотреть на реальный код, было бы хорошо.]
Источники:
Следуйте рисунку, чтобы решить эту проблему:
Ctrl + Shift + J
То, что вы можете сделать, это просто создать свою собственную функцию 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."
Если вы используете console.log
, чтобы испускать несколько значений в одной строке, вот хакерская альтернатива:
var1 + ' ' + var2 + ' ' + var...
(Лучше идеи приветствуются, это может взорваться при определенных обстоятельствах)