Да, это очень похоже на старую практику создания IIFE для изоляции ваших переменных от глобальной области видимости.
Поскольку const
и let
имеют значение block область действия,в отличие от лексической (или функции) области действия, вам не нужно создавать целую функцию и вызывать ее.Достаточно просто обернуть его в блок.
{
const foo = 42;
console.log(foo); // 42
}
console.log(foo); // ReferenceError
Стоит отметить, что эта практика все еще используется (и менее эффективна), чем IIFE, поскольку IIFE также защищает вас от утечки var
s иfunction
объявлений, которых не будет блок.Хотя сегодня наиболее распространенным вариантом использования является использование модуля, который неявно предотвращал бы утечку переменных и объектов в глобальную область.
Только let
, const
и class
имеют область видимости.