@zlodiak

Почему консоль nodejs после результата выводит undefined?

Установил nodejs 8.9.4 . И пытаюсь сложить числа:
kalinin@lenovo ~ $ node
> 1 + 2
3


Всё ок. Но когда пытаюсь вывести результат console.log, то кроме результата выводится ещё undefined:
> console.log('repl');
repl
undefined


Почему?
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
Особенность работы консоли. Это значит, что выражение ничего не возвращает.

Попробуйте ввести такие данные:
function foo(x) { return x + 1 }
foo(2)

Результат:
function foo(x) { return x + 1 }
undefined // объявление функции ничего не возвращает, хотя Function Declaration еще как!
         // консоль же интерпретирует это выражение как Function Expression
foo(2)
3 // вызов a возвращает значение 3

(function bar(x) { return x * x })  // объявление функции, обернутое в скобки,
(function bar(x) { return x * x }) //  интерпретируется как Function Declaration

Пример с arrow function:
(x) => x + 1
(x) => x + 1 // объявление arrow function возвращает саму функцию


Вызов же console.log отправляет в стандартный вывод строку, построенную на основе аргументов, при этом не возвращая какого-либо значения. Поэтому вы видите результат ее выполнения и undefined.
Демо: https://jsfiddle.net/1qwaq2m0/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы