Как проверить тип функции в JavaScript

В задачах ниже вам нужно будет определить функция определена как Function Declaration или Function Expression.

В простых случаях это не составляет труда сделать визуально. Но как проверить, что вы сделали это правильно? Используйте разницу между Function Declaration или Function Expression: первые могут быть вызваны выше своего определения, а вторые - нет.

Пусть у нас есть вот такая функция:

let test = function() { console.log('!'); }

Обратимся к этой функции до ее определения:

test(); // выведет ошибку в консоль, значит Function Expression let test = function() { console.log('!'); }

Вот еще пример:

func(); // выведет '!', значит Function Declaration function func() { console.log('!'); }

Поставим перед нашей функцией плюсик:

func(); // выведет ошибку в консоль, значит Function Expression +function func() { console.log('!'); }

Так как функция выше - это Function Expression и она не присвоена никакой переменной, то ее никак не вызвать, ведь по имени func она будет недоступна.

Определите, является ли представленная функция Function Declaration или Function Expression:

let test = function func() { console.log('!'); }

Определите, является ли представленная функция Function Declaration или Function Expression:

console.log( function func() { console.log('!'); } );

Определите, является ли представленная функция Function Declaration или Function Expression:

+function func() { console.log('!'); }

Определите, является ли представленная функция Function Declaration или Function Expression:

function func() { console.log('!'); }
enru