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.

Undeclared variable gets added to global object

Aby uniknąć takich scenariuszy, możemy zadeklarować use strict. Tryb ścisły nie pozwala na użycie zmiennych, które nie zostały zadeklarowane.

Zmienne niezadeklarowane nie są dodawane do obiektu globalnego

Nie można deklarować zmiennych, które mogą być używane jako przyszłe słowa rezerwowe.

Reserve Word Exception

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.

Usuwanie właściwości ważna składnia

Operator delete nie może być użyty do usunięcia funkcji, zmiennej lub argumentów.

delete może usuwać tylko właściwości

Gdy w trybie ścisłym rzuci wyjątek Type Error. Dzieje się tak, ponieważ próbujemy usunąć właściwość, ale samą wartość.

Typ Error Exception

Użycie eval zostaje ograniczone:

W JS funkcja eval służy do uruchamiania wyrażeń JavaScript w formacie łańcuchowym.

using eval

Postarajmy się zaimplementować ten sam kod w trybie ścisłym:

wyrażenie eval nie zostało wykonane

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *