Вопрос о строгом режиме JavaScript
Недавно проверял свой код через различные инструменты анализа, и постоянно получаю предупреждения о том, что нужно добавить директиву “use strict” в начало файлов.
function calculateTotal(price, tax) {
"use strict";
result = price * (1 + tax); // без var/let/const
return result;
}
function calculateDiscount(amount, percent) {
discount = amount * percent; // без объявления переменной
return discount;
}
В первой функции с use strict
код выдаст ошибку, а во второй будет работать. Понимаю, что это как-то связано с режимом выполнения JavaScript, но не могу разобраться в деталях.
Хотел бы узнать:
- Что конкретно делает эта директива?
- Какие ограничения она накладывает на код?
- Стоит ли использовать ее во всех проектах?
- Поддерживают ли современные браузеры этот режим полностью?
Буду благодарен за подробное объяснение с примерами!