Во-первых, что такое блок

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

Как выглядит блок в 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 — это глобальная переменная области видимости. Несмотря на то, что он записан в блоке, он будет поднят и доступен в глобальной области до блока. Следовательно, он доступен перед блоком, внутри блока и после блока.