I denna handledning lär du dig om JavaScript 'använd strikt' syntax med hjälp av exempel.
'use strict';
anger att JavaScript-koden ska köras i " strikt läge ". Detta gör det lättare att skriva bra och säker JavaScript-kod. Till exempel,
myVariable = 9;
Här skapas myVariable utan att deklarera. Detta fungerar som en global variabel i JavaScript. Men om du använder detta i strikt läge kommer programmet att kasta ett fel. Till exempel,
'use strict'; // Error myVariable = 9;
Ovanstående kod ger ett fel eftersom myVariable inte deklareras. I strikt läge kan du inte använda variabeln utan att deklarera dem.
För att indikera att detta program är i strikt läge har vi använt
'use strict';
högst upp i programmet.
Du kan deklarera det strikta läget genom att lägga till 'use strict';
eller "use strict";
i början av ett program.
När du deklarerar strikt läge i början av ett program kommer det att ha globalt omfång och all kod i programmet körs i strikt läge.
Strikt läge i variabel
I strikt läge ger det ett fel att använda en variabel utan att deklarera.
Obs! Du måste deklarera strikt läge i början av programmet. Om du förklarar strikt läge under någon kod fungerar det inte.
Till exempel,
console.log("some code"); // 'use strict' is ignored // must be at the top "use strict"; x = 21; // does not throw an error
Strikt läge i funktion
Du kan också använda strikt läge i en funktion. Till exempel,
myVariable = 9; console.log(myVariable); // 9 function hello() ( // applicable only for this function 'use strict'; string = 'hello'; // throws an error ) hello();
Om du använder 'use strict';
inuti en funktion kommer koden inuti funktionen att vara i strikt läge.
I ovanstående program 'use strict';
används inuti hello()
funktionen. Därför är det strikta läget endast tillämpligt i funktionen.
Som du kan se används i början av programmet myVariable
utan att deklarera.
Om du deklarerar 'use strict';
högst upp i programmet kan du inte använda en variabel utan att deklarera den också i funktionen. Till exempel,
// applicable to whole program 'use strict'; function hello() ( string = 'hello'; // throws an error ) hello();
Obs! Strikt läge gäller inte blockeringsuttalanden med ()
hängslen.
Saker som inte är tillåtna i strikt läge
1. Odeklarerad variabel är inte tillåten.
'use strict'; a = 'hello'; // throws an error
2. Odeklarerade föremål är inte tillåtna.
'use strict'; person = (name: 'Carla', age: 25); // throws an error
3. Det är inte tillåtet att radera ett objekt.
'use strict'; let person = (name: 'Carla'); delete person; // throws an error
4. Duplicering av ett parameternamn är inte tillåtet.
"use strict"; function hello(p1, p1) ( console.log('hello')); // throws an error hello();
5. Att tilldela en icke-skrivbar egendom är inte tillåten.
'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. Det är inte tillåtet att tilldela en egendom endast för getter.
'use strict'; let obj2 = ( get x() ( return 17; ) ); // assignment to a getter-only property obj2.x = 5; // throws an error
7. Det är inte tillåtet att tilldela en ny fastighet på ett icke-utdragbart objekt.
'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. Oktalsyntax är inte tillåtet.
'use strict'; let a = 010; // throws an error
9. Argumenten för variabelnamnet och eval är inte tillåtna.
'use strict'; let arguments = 'hello'; // throws an error let eval = 44;
10. Du kan inte använda dessa reserverade nyckelord i strikt läge.
implements
interface
let
package
private
protected
public
static
yield
Fördelar med strikt läge
Användningen av strikt läge:
- hjälper till att skriva en renare kod
- ändrar tidigare accepterade tysta fel (dålig syntax) till verkliga fel och kastar ett felmeddelande
- gör det lättare att skriva "säker" JavaScript