ilyachalov (ilyachalov) wrote,
ilyachalov
ilyachalov

Categories:

Учебник по JavaScript: ч.1: var, глобальный объект, объект функции

Продолжаю читать шестой раздел («Продвинутая работа с функциями») первой части («Язык программирования JavaScript») учебника по JavaScript.

https://learn.javascript.ru

Часть 1. Язык программирования JavaScript (в т.ч. 93 подраздела)

Разделы:

6. Продвинутая работа с функциями (11 подразделов)

6.4 Устаревшее ключевое слово "var"
6.5 Глобальный объект
6.6 Объект функции, NFE

Ранее в учебнике уже упоминалось о существовании устаревшего ключевого слова var, служащего для объявления переменной (сейчас вместо него рекомендуют использовать ключевые слова let и const). В подразделе 6.4 это ключевое слово рассматривается более подробно: рассмотрены два отличия от ключевых слов let и const — для ключевого слова var не существует блочной области видимости и, кроме того, это ключевое слово обрабатывается в начале запуска функции независимо от того, где оно фактически прописано (такое поведение называют по-английски «hoisting», что по-русски означает «всплытие» или «поднятие»).

Глобальный объект (в стандарте языка это globalThis, в браузере — это window, а в других средах этот объект может называться по-другому) предоставляет переменные и функции, доступные в любом месте программы.

Ранее в учебнике уже пояснялось, что функция в языке JavaScript является объектом. В подразделе 6.6 учебника эта тема рассматривается более подробно. Например, функция имеет встроенные свойства (к примеру, name (содержит название функции) и length (содержит количество параметров функции)). Кроме этого, программист может добавить в функцию, как и в обычный объект, новые свойства и методы (в последнем случае получается функция функции, что в моем понимании звучит очень необычно).

Ранее в учебнике было рассказано, что функцию в языке JavaScript можно объявить несколькими способами. Например, есть способ, который по-английски называется «Function Declaration» (по-русски «объявление функции»), а есть способ, который по-английски называется «Function Expression» (по-русски «функциональное выражение», то есть объявление функции с помощью присвоения безымянной функции некой переменной). Как оказалось, в последнем случае переменной можно присвоить и функцию с именем, такой способ объявления функций по-английски называется «Named Function Expression» (или сокращенно «NFE»), что по-русски означает «функциональное выражение с именованной функцией».

1. Объявление функции («Function Declaration»):
function foo( /* параметры */ ) {
    // тело функции
}

2. Функциональное выражение («Function Expression»):
let foo = function( /* параметры */ ) {
    // тело функции
};

3. Функциональное выражение с именованной фукнцией («Named Function Expression» или «NFE»):
let foo = function func( /* параметры */ ) {
    // тело функции
};
Tags: Образование, Программирование
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments