`strict mode` i JavaScript

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

YouTube Video