Use strict нужно указывать в начале кода для включения строгого режима так пишет в документации. Строгий режим он нужен только при использовании ECMA Script 5 ? Он идентифицирует что мы пишем ECMA Script 5 ? Объясните пожалуйста я запутался)
Asked
Active
Viewed 802 times
1
-
Да, нужно. При ES5+. – Qwertiy Nov 26 '15 at 20:52
-
1@Vasyok Нет никакой необходимости использовать строгий режим, если вы не знаете, зачем он вам нужен.:) Спокойно пишите свой код без строгого режима. – Vlad from Moscow Nov 26 '15 at 20:57
-
@VladfromMoscow, нет. – Qwertiy Nov 26 '15 at 21:00
-
@Qwertiy Что нет? – Vlad from Moscow Nov 26 '15 at 21:11
-
2@VladfromMoscow, нет, нужно всегда использовать строгий режим. – Qwertiy Nov 26 '15 at 21:14
-
1@Qwertiy Почему это? И без него хорошо живется. – Vlad from Moscow Nov 26 '15 at 21:18
-
@VladfromMoscow, потому что без него живётся плохо. Его не для того придумывали, чтобы не использовать. – Qwertiy Nov 26 '15 at 21:21
-
1@Qwertiy Да я как-то не вижу проблем. Никто не требует, чтобы вы писали в строгом режиме: ни сам стандарт языка, ни браузеры. Это всего лишь ваше личное желание. – Vlad from Moscow Nov 26 '15 at 21:30
-
Ну-ну. – Qwertiy Nov 26 '15 at 21:39
-
1@Qwertiy Только не думайте, что это я поставил минус вашему ответу. Я лишь обращаю внимание,. что совершенно не требуется указывать строгий режим. Вы можете включать его для одних функций, а для других функций его не использовать. Никаких проблем с этим не связано. Браузеры обязаны обработать ваш код в соответствии с тем, был ли для отдельной функции установлен строгий режим или нет. – Vlad from Moscow Nov 26 '15 at 21:39
-
@VladfromMoscow, браузеры обязаны городить костыли вместо оптимизации кода, если строгий режим не используется. Но да, код они выполнят (если сам в нём не накосячишь) - никуда уж не денутся - обратная совместимость же. – Qwertiy Nov 26 '15 at 21:43
-
1@Qwertiy Браузеры будут работать, как ранее работали. Никаких проблем. – Vlad from Moscow Nov 26 '15 at 21:48
-
@VladfromMoscow, обрати внимание на ES6 + browser only + nonstrict only в таблицах совместимости. Там реально костыли. Вот тут typeof вернёт undefined, а теперь мы это вызовем и о чудо, оно работает. И куча браузеров failed. И ни одного теста, что должно быть, если блоки переставить. – Qwertiy Nov 26 '15 at 21:51
-
@Qwertiy Как код работал, так и будет работать. Я уж не говорю о том, что не все браузеры полностью поддерживают 5-ый стандарт. – Vlad from Moscow Nov 26 '15 at 21:53
-
@VladfromMoscow, все: http://kangax.github.io/compat-table/es5/ – Qwertiy Nov 26 '15 at 21:55
-
1@Qwertiy Вы путаете пожелание с необходимостью. Это две разные вещи. Стандарт ECMA не требует, чтобы был указан строгий режим. – Vlad from Moscow Nov 26 '15 at 21:58
1 Answers
3
Да, нужно использовать 'use strict'; для скриптов, написанных в ES5 и новее.
Это указание браузеру, что надо парсить и выполнять скрипт по более современным правилам, а которых сделана попытка исправить некоторые архитектурные косяки js.
Если не ошибаюсь, в сервеных js-средах есть возможность указать его через аргументы командной строки. Можно также написать его на уровне файла. Но для браузеров имеет смысл писать его на уровне самовызывающейся функции-модуля.
Подробнее в вопросе Что значит "use strict"?
Qwertiy
- 123,725