W tym samouczku nauczysz się składni JavaScript „używaj ścisłej” za pomocą przykładów.
'use strict';
stwierdza, że kod JavaScript powinien być wykonywany w „ trybie ścisłym ”. Ułatwia to pisanie dobrego i bezpiecznego kodu JavaScript. Na przykład,
myVariable = 9;
Tutaj myVariable jest tworzony bez deklarowania. Działa jak zmienna globalna w JavaScript. Jeśli jednak użyjesz tego w trybie ścisłym, program zgłosi błąd. Na przykład,
'use strict'; // Error myVariable = 9;
Powyższy kod zgłasza błąd, ponieważ myVariable nie jest zadeklarowana. W trybie ścisłym nie można używać zmiennej bez ich zadeklarowania.
Aby wskazać, że ten program jest w trybie ścisłym, użyliśmy
'use strict';
u góry programu.
Możesz zadeklarować tryb ścisły, dodając 'use strict';
lub "use strict";
na początku programu.
Gdy zadeklarujesz tryb ścisły na początku programu, będzie on miał zasięg globalny, a cały kod w programie będzie wykonywany w trybie ścisłym.
Tryb ścisły w zmiennej
W trybie ścisłym użycie zmiennej bez jej deklarowania powoduje błąd.
Uwaga : musisz zadeklarować tryb ścisły na początku programu. Jeśli zadeklarujesz tryb ścisły poniżej jakiegoś kodu, to nie zadziała.
Na przykład,
console.log("some code"); // 'use strict' is ignored // must be at the top "use strict"; x = 21; // does not throw an error
Tryb ścisły w funkcji
Możesz także użyć trybu ścisłego wewnątrz funkcji. Na przykład,
myVariable = 9; console.log(myVariable); // 9 function hello() ( // applicable only for this function 'use strict'; string = 'hello'; // throws an error ) hello();
Jeśli używasz 'use strict';
wewnątrz funkcji, kod wewnątrz funkcji będzie w trybie ścisłym.
W powyższym programie 'use strict';
jest używany wewnątrz hello()
funkcji. Stąd tryb ścisły ma zastosowanie tylko wewnątrz funkcji.
Jak widać, na początku programu myVariable
jest używany bez deklarowania.
Jeśli deklarujesz 'use strict';
na początku programu, nie możesz użyć zmiennej bez zadeklarowania jej również w funkcji. Na przykład,
// applicable to whole program 'use strict'; function hello() ( string = 'hello'; // throws an error ) hello();
Uwaga : tryb ścisły nie dotyczy instrukcji blokowych z ()
nawiasami klamrowymi.
Rzeczy niedozwolone w trybie ścisłym
1. Niezadeklarowana zmienna jest niedozwolona.
'use strict'; a = 'hello'; // throws an error
2. Niezadeklarowane obiekty są niedozwolone.
'use strict'; person = (name: 'Carla', age: 25); // throws an error
3. Usunięcie obiektu jest niedozwolone.
'use strict'; let person = (name: 'Carla'); delete person; // throws an error
4. Powielanie nazwy parametru jest niedozwolone.
"use strict"; function hello(p1, p1) ( console.log('hello')); // throws an error hello();
5. Przypisywanie do właściwości niezapisywalnej jest niedozwolone.
'use strict'; let obj1 = (); Object.defineProperty(obj1, 'x', ( value: 42, writable: false )); // assignment to a non-writable property obj1.x = 9; // throws an error
6. Przypisywanie do właściwości tylko pobierającej jest niedozwolone.
'use strict'; let obj2 = ( get x() ( return 17; ) ); // assignment to a getter-only property obj2.x = 5; // throws an error
7. Nie jest dozwolone przypisywanie do nowej właściwości obiektu nierozszerzalnego.
'use strict'; let obj = (); Object.preventExtensions(obj); // Assignment to a new property on a non-extensible object obj.newValue = 'new value'; // throws an error
8. Składnia ósemkowa jest niedozwolona.
'use strict'; let a = 010; // throws an error
9. Argumenty nazwy zmiennej i eval nie są dozwolone.
'use strict'; let arguments = 'hello'; // throws an error let eval = 44;
10. Nie można również używać tych zarezerwowanych słów kluczowych w trybie ścisłym.
implements
interface
let
package
private
protected
public
static
yield
Korzyści z trybu ścisłego
Korzystanie z trybu ścisłego:
- pomaga napisać bardziej przejrzysty kod
- zmienia wcześniej zaakceptowane ciche błędy (zła składnia) na rzeczywiste błędy i zgłasza komunikat o błędzie
- ułatwia pisanie „bezpiecznego” JavaScript