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

    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/
    Ответ написан