'use strict' это директива, используемая для включения строгого режима во всем скрипте или отдельных функциях.
Преимущества
- Не позволяет случайно создавать глобальные переменные.
- Любое присваивание, которое в обычном режиме завершается неудачей, в строгом режиме выдаст исключение.
- При попытке удалить неудаляемые свойства выдаст исключение (в то время как в нестрогом режиме никакого действия бы не произошло).
- Требует, чтобы имена параметров функции были уникальными.
- this в глобальной области видимости равно undefined.
- Перехватывает распространённые ошибки, выдавая исключения.
- Исключает неочевидные особенности языка.
Недостатки
- Нельзя использовать некоторые особенности языка, к котороым привыкли некоторые разработчики.
- Нет доступа к
function.caller
иfunction.arguments
. - Объединение скриптов, написанных в строгом режиме, может вызвать проблемы.