Согласно статье Джона Ресига , если вы включите строгий режим в верхней части файла, это относится ко всему файлу / сценарию.Так что да, это подразумевает, что он будет применяться в анонимной функции.
Вы также можете добавить его в функцию, и в этом случае он применяется только к этой конкретной функции.
Отредактировано, чтобы добавить:вот полная спецификация .Один соответствующий абзац:
10.1.1 Код строгого режима
Синтаксическая единица программы ECMAScript может обрабатываться с использованием синтаксиса и семантики неограниченного или строгого режима.При обработке в строгом режиме три типа кода ECMAScript называются строгим глобальным кодом, строгим кодом eval и строгим кодом функции.Код интерпретируется как код строгого режима в следующих ситуациях:
- Глобальный код является строгим глобальным кодом, если он начинается с Пролога Директивы, который содержит Директиву строгого использования (см. 14.1).
- Eval-код - это строгий eval-код, если он начинается с пролога директивы, содержащей директиву Use Strict, или если вызов eval является прямым вызовом (см. 15.1.2.1.1) к функции eval, которая содержится в нем.в строгом режиме кода.
- Код функции, который является частью FunctionDeclaration, FunctionExpression или аксессора. PropertyAssignment является строгим кодом функции, если его FunctionDeclaration, FunctionExpression или PropertyAssignment содержится в коде строгого режима или если код функции начинается с директивного пролога, который содержитИспользуйте Строгую Директиву.
- Код функции, который передается в качестве последнего аргумента встроенному конструктору Function, является строгим кодом функции, если последний аргумент является строкой, которая при обработке как FunctionBody начинается с пролога Directive, содержащего директиву Use Strict.