Scope & Closures Flashcards

По книге "Область видимости и замыкания".

1
Q

Программе дает состояние возможность…

A

хранить значения и извлекать значения из переменных.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Компиляция программы проходит в три шага:

A

1) Разбиение на лексемы
2) Парсинг
3) Генерация кода

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Область видимости - это …

A

Набор правил поиска переменных по их идентификатору.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Лексическая область видимости — это…

A

область видимости, которая определена во время разбора на лексемы.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Термин IIFE означает…

A

Immediately (немедленно) Invoked (вызываемое) Function (функциональное) Expression (выражение).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Запись шаблона IIFE выглядит так:

A

( function( ) { … } ) ( ) Или

function( ) { … } ( )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Ключевое слово let

A

включает объявление переменной в область видимости блока, в котором оно содержится.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Ключевое слово const

A

также создает блочную область видимости. Его значение зафиксировано.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Термин поднятие (hoisting) - означает, что…

A

объявление (переменных и функций) в области видимости происходит до выполнение самого кода.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Замыкание — это когда функция…

A

умеет запоминать и имеет доступ к лексической области видимости даже тогда, когда вызывается вне своей лексической области видимости.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что является примерами замыкания?

A

Таймеры, обработчики событий, Ajax-запросы и любые задачи, включающие колбэк-функции.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Пример цикла + замыкание:

A
for (var i = 0; i <= 5; i++) {
    ( function ( j ) {
        setTimeout( function timer( ) {
             console.log( j );
         }, j * 1000)
    } ) ( i );
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Пример цикла + замыкание (с использованием синтаксиса ES6):

A
for (let i = 0; i <= 5; i++ {
    setTimeout( function timer( ) {
        console.log( i );
    }, i * 1000);
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Требования, которые должны выполняться для шаблона модуля:

A

1) Должна быть внешняя окружающая функция и она должна быть вызвана хотя бы раз.
2) Окружающая функция должна возвращать хотя бы одну внутреннюю функцию, для того, чтобы у этой внутренней функции было замыкание на приватную область видимости и был доступ и/или возможность изменения ее внутреннего состояния.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly