JavaScript- use strict- do czego służy?

Tryb ścisły (piękne tłumaczenie :)) (ang. strict mode) został wprowadzony w wersji 5. standardu ECMAScript. Tryb ten usuwa z języka pewne możliwości, co czyni go prostszym i bardziej odpornym na błędy. Tryb ścisły jest tak naprawdę ograniczoną wersją JavaScriptu.

Słowo kluczowe „with”

Jednym z elementów, które usuwa tryb ścisły jest polecenie „with”. Dla tych którzy pierwszy raz się z nim spotykają- pozwala ono skrócić zapis dostępu do właściwości zmiennej.

Zamiast wypisać wszystkie właściwości obiektu, piszemy je raz i mamy dostęp do ich „dzieci” w obrębie nawiasów klamrowych.

Włączanie trybu ścisłego

Aby włączyć tryb ścisły, wystarczy dodać „use strict”. Możemy zrobić to w dwojaki sposób:  globalnie (dla całego kodu) lub lokalnie (dla konkretnych funkcji). Co ważne definicja trybu ścisłego, musi być na samym początku funkcji czy skryptu.

Warto podkreślić, że tryb ścisły jest kompatybilny wstecz. Starsze implementacje standardu ES nie zgłoszą żadnego błędu, gdyż tryb jest włączony za pomocą zwykłego ciągu znaku.

Ograniczenia trybu ścisłego

Oprócz wspomnianego wcześniej usunięcia polecenia „with”, tryb ścisły wprowadza jeszcze inne zmiany.

Używanie zmiennej bez deklarowania

Próba odwołania się do niezdefiniowanej zmiennej zakończy się błędem. Ustrzeże nas to przed omyłkowym zdefiniowaniem nowej zmiennej globalnej czy po prostu przed literówką w nazwie zmiennej.

Nadpisywanie niektórych zmiennych globalnych

Próba nadpisania niektórych zmiennych globalnych kończy się błędem. Kolejne świetne zabezpieczenie.

Duplikowanie nazw właściwości

Normalnie, druga deklaracja właściwości nadpisze pierwszą, ale w trybie ścisłym otrzymamy błąd. Kolejne udogodnienie i zabezpieczenie przez trywialnymi błędami, które potrafią napsuć krwi.

Duplikowanie nazw parametrów funkcji

Następna ochrona przed niezamierzonymi błędami. W normalnym trybie, drugi parametr nadpisywałby pierwszy, jednak w trybie ścisłym otrzymamy błąd.

Arguments

Nie można również nadpisywać zmiennej „arguments”. Taka próba prowadzi do błędu.

Dodatkow, po zmianie wartości parametru funkcji, za pomocą zmiennej „arguments” nadal mamy dostęp do pierwotnej wartości. W normalnym trybie, po zmianie wartości parametru metody, zmienna „arguments” nie przechowuje pierwotnej wartości.

Słowa zarezerwowane

Tryb ścisły nie pozwala używać słów, które będą (lub już są) uznane za słowa kluczowe standardu. Do tych słów należą:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield

Próba użycia któregoś ze słów, zakończy się błędem.

Inne

To nie koniec restrykcji trybu ścisłego. Należą do niego jeszcze:

  • kasowanie zmiennej lub funkcji za pomocą „delete”
  • używanie składni ósemkowej (var x = 010)
  • nadpisywanie właściwości tylko do odczytu
  • użycie zmiennej „eval” jako zmiennej (var eval = „test”)

Podsumowanie

Tryb ścisły niesie ze sobą pewne ograniczenia, ale mają one na celu wyeliminowanie błędów i poprawę jakości kodu. Założeniem twórców standardu ES jest, że tryb ścisły będzie jedynym dostępnym trybem w przyszłości.

Na koniec warto podać jakie wersje wspierają tryb ścisły:

  • IE od wersji 10.
  • Firefox od wersji 4.
  • Chrome od wersji 13.
  • Safari od wersji 5.1.
  • Opera od wersji 12.

Źródła

Reklamy

Jedna uwaga do wpisu “JavaScript- use strict- do czego służy?

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Connecting to %s