Тест по JavaScript — Замыкания и область видимости
Что такое замыкание в JavaScript?
- 1. Это функция внутри функции, имеющая доступ к переменным внешней функции
- 2. Это метод объекта
- 3. Это блок кода, который запускается немедленно
- 4. Это стрелочная функция
Как работает лексическая область видимости?
- 1. Видимость переменной определяется местом её объявления в коде
- 2. Переменные доступны везде
- 3. Видимость переменной определяется типом данных
- 4. Область видимости задаётся директивой 'use strict'
Когда функции имеют доступ к переменным внешней функции?
- 1. Только если они объявлены через var
- 2. Только если они глобальные
- 3. Если они находятся в той же области видимости
- 4. Если они переданы как аргументы
Какой тип объявления переменных поднимается вверх (hoisting)?
- 1. let
- 2. const
- 3. var
- 4. none
Можно ли получить доступ к переменной до её объявления?
- 1. Нет, если использовать let/const
- 2. Да, всегда
- 3. Только в глобальной области
- 4. Только внутри объектов
Создаётся ли область видимости при объявлении функции?
- 1. Нет, область видимости создается при вызове
- 2. Да, область видимости создается при объявлении
- 3. Да, функции выполняются сразу
- 4. Нет, функции не видят переменные
Зачем используется замыкание?
- 1. Для изоляции переменных
- 2. Для создания глобальных переменных
- 3. Для оптимизации
- 4. Для создания массивов
Какой оператор чаще всего используется, чтобы вернуть замыкание?
- 1. return
- 2. function
- 3. new
- 4. this
Как называется область видимости, создаваемая if/for блоками?
- 1. global
- 2. function
- 3. block
- 4. module
Какие объявления переменных имеют блочную область видимости?
- 1. let и const
- 2. var
- 3. function
- 4. block
Замыкания могут удерживать ссылку на внешнюю переменную даже после завершения внешней функции?
- 1. true
- 2. false
Какой механизм позволяет функции “запомнить” переменные из внешней области?
- 1. Memory leak
- 2. Hoisting
- 3. Closure
- 4. Garbage collection
Что происходит при каждом вызове функции, в которой есть замыкание?
- 1. Создаётся новая область видимости
- 2. Заменяется глобальная область
- 3. Ничего не происходит
- 4. Все переменные становятся глобальными
Что происходит с переменными, захваченными замыканием?
- 1. Они сохраняются в памяти
- 2. Они теряются
- 3. Они становятся глобальными
- 4. Они пересоздаются каждый раз
Что означает “переменная в замыкании”?
- 1. Объявлена внутри функции и не глобальна
- 2. Создана через var
- 3. Находится в глобальной области
- 4. Это константа
Можно ли использовать замыкания в стрелочных функциях?
- 1. Да
- 2. Нет
- 3. Только если использовать var
- 4. Зависит от браузера
Какие конструкции могут образовывать замыкания?
- 1. function внутри функции
- 2. анонимная функция
- 3. IIFE
- 4. все варианты
Могут ли функции, возвращённые из другой функции, продолжать использовать внешние переменные?
- 1. Нет, они теряют доступ к внешнему scope
- 2. Да, но только через this
- 3. Да, полностью
- 4. Только глобальные переменные
Что произойдёт при попытке доступа к переменной вне её области видимости?
- 1. undefined
- 2. TypeError
- 3. ReferenceError
- 4. null
Как сохранить переменную в памяти после завершения функции?
- 1. Объявление через var
- 2. Наличие this
- 3. Передача как аргумента
- 4. Создание в замыкании