Ок, у нас есть код
(function(){ /* code */ })();
который говорит что переменные не выйдут за скоуп этой функции. Но! В ES6 есть let и const, а значит переменная объявленная в
{const}
тоже никуда не потечен. Но как быть если использовать Babel? Не знаю кто как а я на выходе получаю код
{var}
и уж он то точно течет за фигурные скобки. Делитесь кейсами пожалуйста)
______________Update__________________
Кажется понял, Babel отработает таким образом что переменная все равно станет var и утечет за предел
{}
, однако транспилер (транспилятор?) поменяет само название переменной так, чтобы они не пересекались. См. скриншот:
prntscr.com/i683e4