V tomto výukovém programu se pomocí příkladů dozvíte o syntaxi jazyka JavaScript „use strict“.
'use strict';
uvádí, že kód JavaScript by měl být spuštěn v „ přísném režimu “. To usnadňuje psaní dobrého a zabezpečeného kódu JavaScript. Například,
myVariable = 9;
Zde je myVariable vytvořena bez deklarace. To funguje jako globální proměnná v JavaScriptu. Pokud to však použijete v přísném režimu, program vyvolá chybu. Například,
'use strict'; // Error myVariable = 9;
Výše uvedený kód vyvolá chybu, protože myVariable není deklarován. V přísném režimu nemůžete proměnnou použít, aniž byste ji deklarovali.
K označení, že je tento program v přísném režimu, jsme použili
'use strict';
v horní části programu.
Přísný režim můžete deklarovat přidáním 'use strict';
nebo "use strict";
na začátku programu.
Když deklarujete přísný režim na začátku programu, bude mít globální rozsah a veškerý kód v programu se spustí v přísném režimu.
Přísný režim v proměnné
V přísném režimu použití proměnné bez deklarování vyvolá chybu.
Poznámka : Na začátku programu musíte deklarovat přísný režim . Pokud pod nějakým kódem deklarujete přísný režim, nebude to fungovat.
Například,
console.log("some code"); // 'use strict' is ignored // must be at the top "use strict"; x = 21; // does not throw an error
Přísný režim ve funkci
Můžete také použít přísný režim uvnitř funkce. Například,
myVariable = 9; console.log(myVariable); // 9 function hello() ( // applicable only for this function 'use strict'; string = 'hello'; // throws an error ) hello();
Pokud použijete 'use strict';
uvnitř funkce, bude kód uvnitř funkce v přísném režimu.
Ve výše uvedeném programu 'use strict';
se používá uvnitř hello()
funkce. Proto je přísný režim použitelný pouze uvnitř funkce.
Jak vidíte, na začátku programu myVariable
se používá bez deklarace.
Pokud deklarujete 'use strict';
v horní části programu, nemůžete použít proměnnou, aniž byste ji deklarovali také uvnitř funkce. Například,
// applicable to whole program 'use strict'; function hello() ( string = 'hello'; // throws an error ) hello();
Poznámka : Přísný režim se nevztahuje na příkazy bloku se ()
složenými závorkami.
Věci nejsou povoleny v přísném režimu
1. Nehlášená proměnná není povolena.
'use strict'; a = 'hello'; // throws an error
2. Nehlášené objekty nejsou povoleny.
'use strict'; person = (name: 'Carla', age: 25); // throws an error
3. Odstranění objektu není povoleno.
'use strict'; let person = (name: 'Carla'); delete person; // throws an error
4. Duplikování názvu parametru není povoleno.
"use strict"; function hello(p1, p1) ( console.log('hello')); // throws an error hello();
5. Přiřazení k vlastnosti, na kterou nelze zapisovat, není povoleno.
'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. Přiřazení k vlastnosti pouze pro získání není povoleno.
'use strict'; let obj2 = ( get x() ( return 17; ) ); // assignment to a getter-only property obj2.x = 5; // throws an error
7. Přiřazení k nové vlastnosti na neroztažitelném objektu není povoleno.
'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á syntaxe není povolena.
'use strict'; let a = 010; // throws an error
9. Argumenty názvu proměnné a eval nejsou povoleny.
'use strict'; let arguments = 'hello'; // throws an error let eval = 44;
10. Tato vyhrazená klíčová slova také nemůžete používat v přísném režimu.
implements
interface
let
package
private
protected
public
static
yield
Výhody přísného režimu
Použití přísného režimu:
- pomáhá napsat čistší kód
- změní dříve přijaté tiché chyby (špatná syntaxe) na skutečné chyby a vyvolá chybovou zprávu
- usnadňuje psaní „zabezpečeného“ JavaScriptu