куда пихать use strict?

Всегда пихал его вверх файла, уже автоматом это выходит. Его можно так же пихать в начало функций отдельно. И мне тут один знакомый опытный девелопер говорит, мол лучше его пихать в начало функции отдельно. Кто объяснит в чем смысл?

Мне кажется проще запихнть его в топ сразу и уже не париться

“use srtict” как и <1DOCTYPE html> и без него все работает :-)
Смысл в том либо включается глобально, либо для конкретной области видимости заданной функцией, где он указан.
Если это разные независимые модули-плагины, то возможно и имеет смысл указывать внутри функции (области видимости модуля), так как не известно в какое окружение попадет ваш модуль-плагин.
Скопируют файл и если там первой строкой будет стрик мод, поломается приложение где-то, как вариант.

1 лайк

Смысл в том, что возможно ты хочешь объявлять в одном файле функции, которые несовместимы с "use strict" (например обратиться к arguments.callee), тогда объявив "use strict" на уровне файла у тебя не будет возможности объявить такую функцию.

Обрати внимание, что речь идет только про объявление, а не вызов (в строгом режиме можно вызывать функции, объявленные где и как угодно).

Так что я поддерживаю такой вариант.

1 лайк

Спасибо, все структурировалось и встало на свои места)