V tomto tutoriále sa pomocou príkladov dozviete o syntaxe jazyka JavaScript „use strict“.
'use strict';
uvádza, že kód JavaScript by sa mal vykonávať v „ prísnom režime “. Toto uľahčuje písanie dobrého a bezpečného kódu JavaScript. Napríklad,
myVariable = 9;
Tu sa myVariable vytvorí bez deklarovania. Funguje to ako globálna premenná v JavaScripte. Ak to však použijete v prísnom režime, program spôsobí chybu. Napríklad,
'use strict'; // Error myVariable = 9;
Vyššie uvedený kód vyvolá chybu, pretože myVariable nie je deklarovaná. V prísnom režime nemôžete premennú použiť bez toho, aby ste ich deklarovali.
Na označenie, že tento program je v prísnom režime, sme použili
'use strict';
v hornej časti programu.
Prísny režim môžete vyhlásiť pridaním 'use strict';
alebo "use strict";
na začiatku programu.
Keď na začiatku programu vyhlásite prísny režim, bude mať globálny rozsah a všetok kód v programe sa vykoná v prísnom režime.
Prísny režim v premennej
V prísnom režime použitie premennej bez jej deklarovania spôsobí chybu.
Poznámka : Na začiatku programu musíte vyhlásiť prísny režim . Ak pod nejakým kódom vyhlásite prísny režim, nebude to fungovať.
Napríklad,
console.log("some code"); // 'use strict' is ignored // must be at the top "use strict"; x = 21; // does not throw an error
Prísny režim vo funkcii
Vo funkcii môžete tiež použiť prísny režim. Napríklad,
myVariable = 9; console.log(myVariable); // 9 function hello() ( // applicable only for this function 'use strict'; string = 'hello'; // throws an error ) hello();
Ak použijete 'use strict';
funkciu, kód vo funkcii bude v prísnom režime.
Vo vyššie uvedenom programe 'use strict';
sa používa vo vnútri hello()
funkcie. Prísny režim je preto použiteľný iba vo vnútri funkcie.
Ako vidíte, na začiatku programu myVariable
sa používa bez deklarovania.
Ak deklarujete 'use strict';
v hornej časti programu, nemôžete použiť premennú bez toho, aby ste ju deklarovali aj vo vnútri funkcie. Napríklad,
// applicable to whole program 'use strict'; function hello() ( string = 'hello'; // throws an error ) hello();
Poznámka : Prísny režim sa nevzťahuje na blokové príkazy so ()
zloženými zátvorkami.
Veci, ktoré nie sú povolené v prísnom režime
1. Nedeklarovaná premenná nie je povolená.
'use strict'; a = 'hello'; // throws an error
2. Nedeklarované objekty nie sú povolené.
'use strict'; person = (name: 'Carla', age: 25); // throws an error
3. Vymazanie objektu nie je povolené.
'use strict'; let person = (name: 'Carla'); delete person; // throws an error
4. Duplikovanie názvu parametra nie je povolené.
"use strict"; function hello(p1, p1) ( console.log('hello')); // throws an error hello();
5. Priradenie k majetku, na ktorý sa nedá zapísať, nie je povolené.
'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. Pridelenie na nehnuteľnosť typu getter nie je povolené.
'use strict'; let obj2 = ( get x() ( return 17; ) ); // assignment to a getter-only property obj2.x = 5; // throws an error
7. Priradenie k novej nehnuteľnosti na nerozšíriteľnom objekte nie je povolené.
'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. Osmičková syntax nie je povolená.
'use strict'; let a = 010; // throws an error
9. Argumenty názvu premennej a eval nie sú povolené.
'use strict'; let arguments = 'hello'; // throws an error let eval = 44;
10. Tieto vyhradené kľúčové slová nemôžete používať ani v prísnom režime.
implements
interface
let
package
private
protected
public
static
yield
Výhody prísneho režimu
Použitie prísneho režimu:
- pomáha napísať čistejší kód
- zmení predtým akceptované tiché chyby (zlá syntax) na skutočné chyby a zobrazí chybové hlásenie
- uľahčuje písanie „zabezpečeného“ JavaScriptu