`strict mode` i JavaScript
Denne artikel forklarer strict mode
i JavaScript.
YouTube Video
strict mode
i JavaScript
I JavaScript er strict mode
en funktion introduceret i ECMAScript 5 (ES5) for at gøre koden mere sikker og forhindre fejl. Ved at bruge strict mode deaktiveres visse lempelige syntakser og potentielt risikable funktioner, og strengere fejlkontrol håndhæves. Dette giver udviklere mulighed for at undgå uforudset adfærd og skrive mere robust og højtydende kode.
Aktivering af strict mode
For at aktivere strict mode
, skal du tilføje følgende direktiv i starten af din kode.
1"use strict";
Denne erklæring kan anvendes på hele scriptet eller på funktionsbasis. For eksempel, hvis det anvendes på hele scriptet, kan du skrive det som følger:.
1"use strict";
2
3function example() {
4 // Strict mode is applied
5}
Hvis det anvendes per funktion, kan du skrive det som følger:.
1function example() {
2 "use strict";
3 // Strict mode is applied only within this function
4}
strict mode
gælder for hvert scope, så det kan også aktiveres inden for en funktion. Da strict mode
som standard er aktiveret i moduler, behøver du heller ikke at erklære det individuelt inden for modulet.
Nøglefunktioner og forskelle ved strict mode
Brugen af strict mode
ændrer nogle af JavaScripts standardadfærd. Her er de vigtigste eksempler.
Forbud mod implicitte globale variabler
I almindelig JavaScript definerer udeladelse af variabelerklæringer dem automatisk som globale variabler, men i strict mode
resulterer dette i en fejl.
1"use strict";
2
3x = 10; // Error: x is not defined
Variabler skal altid erklæres ved hjælp af var
, let
eller const
.
Begrænsninger for brug af reserverede ord
Potentielle fremtidige JavaScript-nøgleord (f.eks. implements
, interface
, package
, osv.) kan ikke bruges som variabel- eller funktionnavne i strict mode
.
1"use strict";
2
3var package = "strict mode"; // Error: Unexpected strict mode reserved word
Ændringer i adfærden for this
I normal tilstand refererer this
inde i en funktion til det globale objekt (f.eks. window
i browsere), men i strict mode
er this
undefined
.
1"use strict";
2
3function example() {
4 console.log(this); // undefined
5}
6
7example();
Dette hjælper med at forhindre fejl forårsaget af forkert brug af this
.
Forbud mod sletning af ikke-sletbare egenskaber
I normal tilstand ignoreres forsøg på at slette ikke-slettelige egenskaber uden fejl, men i strict mode
kaster det en fejl.
1"use strict";
2
3var obj = Object.freeze({name: "John"});
4delete obj.name; // Error: Cannot delete property 'name'
Forbud mod duplikerede parameternavne
I normal tilstand er det tilladt at erklære parametre med samme navn flere gange, men i strict mode
forårsager det en fejl.
1"use strict";
2
3function example(a, a) {
4 // Error: Duplicate parameter name not allowed in this context
5}
Forbud mod with
-sætningen
with
-sætningen kan reducere læsbarheden af koden og er ikke tilladt i strict mode
.
1"use strict";
2
3with (Math) {
4 // Error: Strict mode code may not include a with statement
5}
Fordele ved strict mode
strict mode
forbedrer kodens sikkerhed og effektivitet på flere måder.
Forbedret fejldetektering
I strict mode
opdages fejl, der overses i normal tilstand, hvilket giver udviklere mulighed for tidligt at opdage potentielle fejl. For eksempel forhindrer det oprettelsen af utilsigtede globale variabler og misbrug af reserverede ord.
Forbedret ydelse
I strict mode
kan JavaScript-motorer optimere kode mere effektivt. Som resultat kan udførelseshastigheden forbedres.
Forbedret kode-sikkerhed
Håndteringen af this
bliver mere striks og forhindrer adgang til unødvendige globale objekter, hvilket forbedrer kode-sikkerheden. Desuden undgår begrænsningen af brugen af reserverede ord fremtidige konflikter med nøgleord.
Kompatibilitet og overvejelser
strict mode
blev introduceret i ECMAScript 5 og understøttes ikke i browsere, der blev udgivet før dette. Aktivering af strict mode
ignoreres dog blot af ikke-understøttede browsere uden at ødelægge scriptet. Derfor kan det normalt bruges sikkert.
Når strict mode
introduceres i et stort eksisterende projekt, er grundig test afgørende for at undgå uventede fejl.
Konklusion
JavaScripts strict mode
er en yderst nyttig funktion til at forbedre kodekvaliteten. Især for store projekter eller samarbejdsudvikling anbefales det aktivt at bruge strict mode for at forhindre uventede fejl og bugs samt for at forbedre kodelæseligheden og vedligeholdelsen.
Forståelse og korrekt anvendelse af strict mode
hjælper med at undgå JavaScript-faldgruber og muliggør en mere sikker og effektiv udvikling.
Du kan følge med i ovenstående artikel ved hjælp af Visual Studio Code på vores YouTube-kanal. Husk også at tjekke YouTube-kanalen.