Przyjrzyjmy się różnym scenariuszom, w których ta prosta zmiana może ci pomóc.
Zmienna nie zostanie dodana do obiektu globalnego/okna, jeśli nie jest zadeklarowana.
Domyślnie, jeśli zostanie zdefiniowana niezadeklarowana zmienna, zostanie ona dodana do obiektu globalnego/okiennego. Może to spowodować błąd, a nawet może być trudne do znalezienia.
Aby uniknąć takich scenariuszy, możemy zadeklarować use strict. Tryb ścisły nie pozwala na użycie zmiennych, które nie zostały zadeklarowane.
Nie można deklarować zmiennych, które mogą być używane jako przyszłe słowa rezerwowe.
Jak widzimy na powyższym przykładzie, po lewej stronie udało nam się zadeklarować zmienną i nazwać ją let, co jest zarezerwowanym słowem kluczowym ES6. Technicznie powinno to rzucić wyjątek, ale jest on ignorowany przez kompilator.
Po prawej stronie widzimy również, że dostaliśmy błąd składni poprzez zmianę kontekstu działania na ścisły. Powinniśmy zdecydować się na tryb ścisły, aby uniknąć użycia zarezerwowanego słowa kluczowego dla nazw zmiennych.
Zatrzymuje nas przed usuwaniem funkcji, zmiennych i argumentów funkcji:
Operator delete sam w sobie jest używany do usuwania właściwości na obiekcie.
Operator delete nie może być użyty do usunięcia funkcji, zmiennej lub argumentów.
Gdy w trybie ścisłym rzuci wyjątek Type Error. Dzieje się tak, ponieważ próbujemy usunąć właściwość, ale samą wartość.
Użycie eval zostaje ograniczone:
W JS funkcja eval służy do uruchamiania wyrażeń JavaScript w formacie łańcuchowym.
Postarajmy się zaimplementować ten sam kod w trybie ścisłym: