Недавно я установил node.js на свою машину Windows 7.
При выполнении JavaScript я получаю сообщение undefined вместе с успешным выполнением выражения.
Что здесь не так? Я не заметил никаких других побочных эффектов.
Недавно я установил node.js на свою машину Windows 7.
При выполнении JavaScript я получаю сообщение undefined вместе с успешным выполнением выражения.
Что здесь не так? Я не заметил никаких других побочных эффектов.
Просто напишите "hello world";
и нажмите enter... он вернет "hello world"
вместо undefined
, поэтому не будет отображаться undefined
. console.log
возвращает undefined
, а также записывает аргументы в консоль, чтобы получить несколько сообщений.
Функции JavaScript всегда возвращают что-то. Если вы не укажете что-то для возврата в функцию, возвращается "undefined" (вы также можете проверить это в Firebug).
Не волнуйтесь, это ни на что не влияет, вы можете игнорировать его.
Как указано другими, функция javascript всегда будет возвращать undefined, если вы не укажете никакого возвращаемого значения. Вы можете просто игнорировать его. Это не навредит. Но если это слишком раздражает вас, вы можете отключить его в реплике. Repl имеет это свойство ignoreUndefined, для которого по умолчанию установлено значение false. Вы можете установить значение true. Попробуйте следующее:
module.exports.repl.ignoreUndefined = true;
Ну, вопрос был сделан несколько лет назад, но есть еще один способ объяснить, что здесь происходит.
Попробуйте выполнить следующую команду:
console.log("Hello World") || "Bye World";
Как упоминалось, функция console.log()
обычно возвращает undefined
, и вы можете выбрать лучшее возвращаемое значение. Поскольку нестрогое (абстрактное) сравнение считает undefined
равным false
, оператор ||
разрешает вам этот выбор.
Учитывая, что это всего лишь инструмент отладки, это необязательно для общего использования, но помогает понять, что консоль отображает текст, отправленный на stdout, а также оценивает команду и показывает возвращаемое значение или undefined, если значение не было получено.
Если вам нужно включить ignoreUndefined
изнутри модуля, вы можете использовать следующую строку для имитации AvinashB ответа, не набрав в консоли самостоятельно
process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");
node
также печатает undefined
, потому что IN GENERAL отображает возвращаемое значение каждой команды, а console.log
ничего не возвращает.
это происходит из-за того, что console.log имеет (null/undefined) возвращаемый тип для решения этой проблемы... есть функция, возвращающая строку... затем записывает эту функцию, возвращающую значение... которая преодолеет неопределенную проблему..
const addNotes= function(msg)
{
return msg;
}
console.log(addNotes('say hello'));