У меня есть один очень простой вопрос:
Хорошо ли заключать код в IIFE всякий раз, когда я собираюсь использовать "use strict
"?
Теперь я понимаю полезность Scope Closure (ответил здесь и здесь) или, возможно, еще лучше, о полезности популярного модульного подхода к проектированию и о том, почему IIFE является таким мощным инструментом, который можно использовать (и не только) в этих сценариях, но это не о чем этот вопрос.
Я заметил, что большинство линтеров (включая jsfiddle) имеют тенденцию жаловаться всякий раз, когда вы хотите использовать строгий режим в глобальной области видимости:
Обертывание блока внутри IIFE, похоже, предотвращает жалобы линтера.
(function(){
"use strict";
console.log("I compiled!");
})();
Есть ли какое-либо основание, почему use strict;
следует хранить внутри IIFE, или это просто "необоснованное возражение", выдвинутое без надлежащей причины?