`strict mode` i JavaScript
Den här artikeln förklarar strict mode
i JavaScript.
YouTube Video
strict mode
i JavaScript
I JavaScript är strict mode
en funktion som introducerades i ECMAScript 5 (ES5) för att göra koden säkrare och förhindra fel. Genom att använda strict mode inaktiveras vissa tillåtande syntaxer och potentiellt riskfyllda funktioner, och striktare felkontroller genomförs. Detta gör det möjligt för utvecklare att undvika oväntat beteende och skriva mer robust och högpresterande kod.
Aktivera strict mode
För att aktivera strict mode
, lägg till följande direktiv i början av din kod.
1"use strict";
Detta uttalande kan tillämpas på hela skriptet eller för varje enskild funktion. Till exempel, om det tillämpas på hela skriptet, kan du skriva det så här:.
1"use strict";
2
3function example() {
4 // Strict mode is applied
5}
Om det tillämpas per funktion kan du skriva det så här:.
1function example() {
2 "use strict";
3 // Strict mode is applied only within this function
4}
strict mode
gäller per scoped nivå, så det kan också aktiveras inom en funktion. Eftersom strict mode
är aktiverat som standard i moduler behöver du dessutom inte deklarera det separat inom modulen.
Nyckelfunktioner och skillnader med strict mode
Att använda strict mode
ändrar några av JavaScripts standardbeteenden. Här är de viktigaste exemplen.
Förbud mot implicita globala variabler
I vanlig JavaScript definieras variabler som globala om deklarationen utelämnas, men i strict mode
resulterar detta i ett fel.
1"use strict";
2
3x = 10; // Error: x is not defined
Variabler måste alltid deklareras med var
, let
eller const
.
Begränsning av användningen av reserverade ord
Potentiella framtida JavaScript-nyckelord (t.ex. implements
, interface
, package
, etc.) kan inte användas som variabel- eller funktionsnamn i strict mode
.
1"use strict";
2
3var package = "strict mode"; // Error: Unexpected strict mode reserved word
Förändringar i beteendet hos this
I normalt läge hänvisar this
inuti en funktion till det globala objektet (t.ex. window
i webbläsare), men i strict mode
är this
undefined
.
1"use strict";
2
3function example() {
4 console.log(this); // undefined
5}
6
7example();
Detta hjälper till att förhindra buggar orsakade av felaktig användning av this
.
Förbud mot radering av icke-raderbara egenskaper
I normalt läge ignoreras försök att ta bort icke-raderbara objekt egenskaper utan fel, men i strict mode
kastas ett fel.
1"use strict";
2
3var obj = Object.freeze({name: "John"});
4delete obj.name; // Error: Cannot delete property 'name'
Förbud mot dubbla parameternamn
I normalt läge är det tillåtet att deklarera parametrar med samma namn flera gånger, men i strict mode
orsakar det ett fel.
1"use strict";
2
3function example(a, a) {
4 // Error: Duplicate parameter name not allowed in this context
5}
Förbud mot with
-satsen
with
-uttrycket kan minska läsbarheten i koden och är inte tillåtet i strict mode
.
1"use strict";
2
3with (Math) {
4 // Error: Strict mode code may not include a with statement
5}
Fördelar med strict mode
strict mode
förbättrar kodens säkerhet och effektivitet på flera sätt.
Förbättrad felupptäckt
I strict mode
upptäcks fel som förbises i normalt läge, vilket gör det möjligt för utvecklare att upptäcka potentiella buggar tidigt. Det förhindrar till exempel skapandet av oavsiktliga globala variabler och missbruk av reserverade ord.
Förbättrad prestanda
I strict mode
kan JavaScript-motorer optimera koden mer effektivt. Som ett resultat kan exekveringshastigheten förbättras.
Förbättrad kodsäkerhet
Hanteringen av this
blir striktare, vilket förhindrar åtkomst till onödiga globala objekt och därmed förbättrar kodsäkerheten. Dessutom undviker restriktionen mot användning av reserverade ord framtida konflikter med nyckelord.
Kompatibilitet och överväganden
strict mode
introducerades i ECMAScript 5 och stöds inte i webbläsare som släpptes innan dess. Men att aktivera strict mode
ignoreras helt enkelt av webbläsare som inte stöder det, utan att scriptet bryts. Därför kan det vanligtvis användas säkert.
När strict mode
införs i ett större befintligt projekt är noggranna tester avgörande för att undvika oväntade fel.
Slutsats
JavaScripts strict mode
är en mycket användbar funktion för att förbättra kodkvaliteten. Särskilt för storskaliga projekt eller teamutveckling rekommenderas att aktivt använda strikt läge för att förhindra oväntade buggar och fel, samt förbättra kodens läsbarhet och underhållbarhet.
Att förstå och tillämpa strict mode
på rätt sätt hjälper till att undvika fallgropar i JavaScript och möjliggör säkrare och mer effektiv utveckling.
Du kan följa med i artikeln ovan med hjälp av Visual Studio Code på vår YouTube-kanal. Vänligen kolla även in YouTube-kanalen.