01.i Function Declaration
Function Declaration - функция, объявленная в основном потоке кода, имя которой регистрируется в текущем пространстве имен. К таким функциями относят обычные объявления функции:
// function declaration
function isEven(num) {
return num % 2 === 0;
}
isEven(24); // => true
isEven(11); // => false
Основная особенность функций данного типа заключается в том, что только они воздействуют текущее пространство имен. К моменту этапа интерпретации кода контекста, эти функции уже доступны для использования, т.к. попадают в окружение при построении пространства имен.
Основные свойства:
Функция обязательно имеет имя;
Функция "поднимается" вверх, т.е. функцию можно использовать выше её объявления.
Создается на этапе входа в контекст;
Новая функция создается в текущем пространстве имен.
Анонимные функции не могут быть созданы таким образом.
Находится в коде непосредственно: либо на уровне Программа (Program), либо внутри другой функции (Function Body);
Воздействует на объект переменных (имя этой функции записывается в окружение контекста);
Объявление функции Function Declaration, сделанное в блоке, видно только в этом блоке (ES6).
Такие функции можно использовать и до их объявления, т.к. они поднимаются наверх (правило подъема работает только в текущем scope.):
// Hoisted variable
console.log(hello("Aliens")); // => 'Hello Aliens!'
// Named function
console.log(hello.name); // => 'hello'
// Variable holds the function object
console.log(typeof hello); // => 'function'
function hello(name) {
return `Hello ${name}!`;
}
Last updated
Was this helpful?