Strict mode este o funcționalitate introdusă în ECMAScript 5 care activează o versiune „mai strictă” a sintaxei JavaScript, prevenind anumite acțiuni periculoase și aruncând erori mai devreme când apar probleme. Acesta ajută dezvoltatorii să evite capcane comune ale limbajului, cum ar fi declararea accidentală de variabile globale sau suprascrierea proprietăților neschimbabile. Deși nu este obligatoriu pentru rularea codului, activarea lui este considerată o bună practică esențială pentru menținerea calității și a stabilității aplicațiilor moderne.

Ce trebuie să știi

  • Previne variabilele globale accidentale: Dacă assignezi o valoare unei variabile nedeclarate (x = 10), strict mode va arunca o eroare ReferenceError, în loc să creeze automat o proprietate globală ascunsă.
  • Blochează suprascrierea proprietăților neschimbabile: Încearcă să modifici o proprietate marcată ca readonly sau o metodă a unui obiect nativ (ex: Math.PI = 5) va genera o excepție, protejând integritatea mediului de execuție.
  • Interzice duplicarea numelui parametrilor: Definirea unei funcții cu parametri duplicați (ex: function test(a, a) {}) este interzisă, deoarece acest lucru poate duce la comportamente imprevizibile și dificultăți în depanare.
  • Restricționează ștergerea identificatorilor: Nu poți șterge variabile, funcții sau parametri declarați explicit (delete myVar; va eșua), prevenind manipularea accidentală a scope-ului.
  • Isolarea this: În funcțiile obișnuite, this se referă implicit la obiectul global (window în browser) dacă nu este apelat ca metodă. În strict mode, this va fi undefined în astfel de contexte, facilitând detectarea erorilor de context.

Exemplu practic

Iată diferența vizibilă atunci când încerci să folosești o variabilă neinițializată:

// Fără strict mode: 'globalVar' devine o proprietate globală ascunsă
globalVar = "test"; 

// Cu strict mode: Aruncă ReferenceError
"use strict";
anotherVar = "test"; // SyntaxError sau ReferenceError

Activarea directivei "use strict"; la începutul fișierului sau al funcției transformă aceste „greșeli silabe” în erori explicite, forțându-te să scrii cod mai curat și mai predictibil.

Cum să înveți

  1. Activează-l în proiectele noi: Configurează mediul tău de dezvoltare (ex: ESLint) să impună strict mode implicit, astfel încât să te obișnuiești cu regulile stricte din prima zi.
  2. Testează refactoring-ul: Ia un script vechi, adaugă "use strict"; la început și citește cu atenție erorile raportate de consolă; acestea îți vor arăta exact unde codul tău era fragil.
  3. Studiază documentația MDN: Citește secțiunea dedicată pentru a înțelege nuanțele specifice, cum ar fi comportamentul diferit al eval() sau al obiectelor arguments.

Resurse gratuite

Alte subiecte din „Introducere”