node.js отображает "неопределенный" на консоли - PullRequest
45 голосов
/ 10 декабря 2011

Недавно я установил node.js на мой компьютер с Windows 7.

При выполнении JavaScript я получаю сообщение undefined и успешное выполнение выражения

Что здесь не так?Других побочных эффектов я не заметил.

enter image description here

Ответы [ 7 ]

43 голосов
/ 10 декабря 2011

Функции JavaScript всегда возвращают что-то. Если вы не укажете что-либо для возврата в функции, по умолчанию возвращается undefined (вы можете проверить это и в Firebug).

Не волнуйтесь, это ни на что не влияет, вы можете игнорировать это.

29 голосов
/ 10 декабря 2011

Просто напишите "hello world"; и нажмите ввод ... он вернет "hello world" вместо undefined, поэтому undefined не отображается.console.log возвращает undefined, а также записывает аргументы в консоль, чтобы вы получили несколько сообщений.

19 голосов
/ 28 августа 2013

Как отмечают другие, функция javascript всегда будет возвращать неопределенное значение, если вы не укажете никакого возвращаемого значения.Вы можете просто игнорировать это.Это не причинит никакого вреда.Но если вас это сильно раздражает, вы можете отключить его в repl.Repl имеет это свойство ignoreUndefined , которое по умолчанию имеет значение false.Вы можете установить его в true.Попробуйте это:

module.exports.repl.ignoreUndefined = true;
6 голосов
/ 21 июня 2016

Ну, вопрос был задан несколько лет назад, но есть еще один способ объяснить, что здесь происходит.

Попробуйте следующую команду:

console.log("Hello World") || "Bye World";

Как уже упоминалось, функция console.log() обычно возвращает undefined, и вы можете выбрать лучшее возвращаемое значение. Поскольку при нестрогом (абстрактном) сравнении undefined считается равным false, оператор || допускает такой выбор.

Учитывая, что это всего лишь инструмент отладки, он не нужен в общем использовании, но помогает понять, что консоль отображает текст, отправленный на стандартный вывод, а также пропускает команду, а отображает возвращаемое значение или неопределенное, если значение не было получено.

4 голосов
/ 10 сентября 2015

Если вам нужно включить ignoreUndefined изнутри модуля, вы можете использовать следующую строку для имитации ответа AvinashB без ввода текста самостоятельно в консоли:

process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");
2 голосов
/ 06 октября 2016

node также печатает undefined, поскольку В ОБЩЕМ отображает возвращаемое значение каждой команды, а console.log ничего не возвращает.

0 голосов
/ 08 июля 2019

это происходит из-за того, что console.log имеет (null / undefined) возвращаемый тип для решения этой проблемы ... есть функция, возвращающая строку ... затем запишите эту функцию, возвращающую значение ... которая преодолеет неопределенную проблему ..

const addNotes= function(msg)
{
    return msg;
}
console.log(addNotes('say hello'));
...