Что делает строчка “use strict”;? Какие достоинства и недостатки от ее использования?
‘use strict’ это директива, используемая для включения строгого режима во всем скрипте или отдельных функциях.
Преимущества:
1. Не позволяет случайно создавать глобальные переменные.
2. Любое присваивание, которое в обычном режиме завершается неудачей, в строгом режиме выдаст исключение.
3. При попытке удалить неудаляемые свойства, выдаст исключение (в то время как в нестрогом режиме никакого действия бы не произошло).
4. Требует, чтобы имена параметров функции были уникальными.
5. this в глобальной области видимости равно undefined.
6. Перехватывает распространенные ошибки, выдавая исключения.
7. Исключает неочевидные особенности языка.
Недостатки:
1. Нельзя использовать некоторые особенности языка, к которым привыкли некоторые разработчики.
2. Нет доступа к function.caller и function.arguments.
3. Объединение скриптов, написанных в строгом режиме может вызвать проблемы.