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

Node.js отображает "undefined" на консоли

Недавно я установил node.js на свою машину Windows 7.

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

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

enter image description here

4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

module.exports.repl.ignoreUndefined = true;

Ответ 4

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

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

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

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

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

Ответ 5

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

process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");

Ответ 6

node также печатает undefined, потому что IN GENERAL отображает возвращаемое значение каждой команды, а console.log ничего не возвращает.

Ответ 7

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

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