`strict mode` i JavaScript

`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.

YouTube Video