Во-первых, что такое блок ❓
Это оболочка, которая позволяет программисту писать в ней одну или несколько инструкций.
Как выглядит блок в JS ❓
{} -> a block { // code is written within the block }
Какая польза от блока ❓
Сначала рассмотрим инструкцию, написанную всего в одну строку
let color = "red"; if(color === "red") console.log("it is red");
приведенный выше оператор напечатает «это красный», если переменная color имеет значение «красный». Что, если мы хотим, чтобы выполнялось больше операторов, если цвет красный?
Сначала мы должны написать условие, а затем добавить к нему обертку { } . Затем добавьте инструкции в оболочку.
let color = "red"; if (color === "red") { console.log("it is red"); console.log("Therefore, background color should be red!"); }
Блок позволяет программистам писать несколько строк операторов в тех случаях, когда js ожидает один оператор.
Во-вторых, что такое область действия ❓
«Область действия означает доступность переменных и функций в определенных частях кода» (programiz)
Давайте создадим блок и добавим в него несколько переменных.
Таким образом, блок создается в строке 1 и закрывается в строке 6. В строке 2 можно увидеть область до объявления.
В области, которую мы видим, переменные поднимаются, но переменные, объявленные с использованием let
и const
, находятся в области блока, а переменная, объявленная с помощью var
, — в глобальной области.
Так в чем разница ❓ 😕
let и const являются переменными области блока, и они будут подняты после начала блока. И в конце блока переменные удаляются из области видимости. Поэтому они доступны для доступа внутри определенного блока после инициализации переменных, так как до инициализации они находятся во временной мертвой зоне (TDZ). (Подробнее о TDZ)
Но var — это глобальная переменная области видимости. Несмотря на то, что он записан в блоке, он будет поднят и доступен в глобальной области до блока. Следовательно, он доступен перед блоком, внутри блока и после блока.