В ES5 написание такого кода считалось хорошей практикой:
(function () {
//some magic
})();
Но в ES6 переменные, созданные с ключевым словом let
, не привязываются к объекту window
.
Итак, есть ли сейчас необходимость писать наш код в IIFE, или у него все еще есть какие-то цели, о которых я не слышал?
let
, не привязаны к объектуwindow
, но они остаются глобальными. Поэтому, если вы пишете сценарии, вам нужно поместить их в блок или IIFE. - person Bergi   schedule 23.05.2016