Co robi „use strict” w JavaScript i jakie jest tego uzasadnienie?

Niedawno uruchomiłem część kodu JavaScript za pomocą JSLint Crockforda i dał następujący błąd: Problem w linii 1 znak 1: Brak instrukcji „use strict”. Poszukując, zdałem sobie sprawę, że niektórzy ludzie dodają „use strict”; do kodu JavaScript. Po dodaniu instrukcji błąd przestał się pojawiać. Niestety Google nie ujawnił zbyt wielu historii związanych z tą instrukcją. Z pewnością ma to coś wspólnego z tym, jak JavaScript jest interpretowany przez przeglądarkę, ale nie mam pojęcia, jaki byłby efekt.

Czym więc jest „use strict”; o co chodzi, co to oznacza i czy nadal jest istotne?

Czy któraś z obecnych przeglądarek reaguje na „use strict”; lub czy jest do wykorzystania w przyszłości?

1 odpowiedź

Instrukcja „use strict”; instruuje przeglądarkę, aby korzystała z trybu ścisłego, który jest zmniejszonym i bezpieczniejszym zestawem funkcji JavaScript. Lista funkcji (niewyczerpująca): 1.Wyłącza zmienne globalne. (Łapie brakujące var deklaracje i literówki w nazwach zmiennych) 2.Ciche niepowodzenia przydziałów powodują błąd w trybie ścisłym (przypisanie NaN = 5;) 3.Próby usunięcia właściwości niemożliwych do usunięcia zostaną odrzucone (delete Object.prototype) 4.Wymaga, aby wszystkie nazwy właściwości w literale obiektu były unikalne (var x = {x1: "1", x1: "2"}) 5.Nazwy parametrów funkcji muszą być unikalne (funkcion sum (x, x) {...}) 6.Zabrania składni ósemkowej (var x = 023; niektórzy devs błędnie zakładają, że poprzednie zero nic nie zmienia). 7.Zabrania słowa kluczowego with 8.eval w trybie ścisłym nie wprowadza nowych zmiennych 9.Zabrania usuwania zwykłych nazw (delete x;) 10.Zabrania wiązania lub przypisywania nazw eval i arguments w dowolnej formie 11.Tryb ścisły nie aliasuje właściwości obiektu arguments z parametrami formalnymi. (tj. w funkcion sum (a, b) {return arguments(0)+ b;} Działa to, ponieważ argumenty (0) są powiązane z a i tak dalej. 12.arguments.callee nie jest obsługiwany

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.