Ultimele tutoriale de dezvoltare web
 

JavaScript Utilizați Strict


"use strict"; Definește acest cod JavaScript trebuie să fie executat în "strict mode" .


"use strict" Directiva

"use strict" directiva este nou în JavaScript 1.8.5 (ECMAScript version 5) .

Nu este o afirmație, ci o expresie literală, ignorată de versiunile anterioare ale JavaScript.

Scopul "use strict" este de a indica faptul că acest cod ar trebui să fie executat în "strict mode" .

Cu modul strict, nu puteți, de exemplu, utilizează variabile nedeclarate.

modul strict este acceptat în:
IE de la versiunea 10. Firefox de la versiunea 4.
Chrome de la versiunea 13. Safari de la versiunea 5.1.
Opera de la versiunea 12.


Declararea Strict Mode

Modul strict este declarat prin adăugarea "use strict"; la începutul unui script sau o funcție.

Declarată la începutul unui scenariu, are domeniul de aplicare la nivel mondial (toate cod în script-ul va executa în modul strict):

Exemplu

"use strict";
x = 3.14;       // This will cause an error (x is not defined)
Încearcă - l singur »

Exemplu

"use strict";
myFunction();

function myFunction() {
    y = 3.14;   // This will also cause an error (y is not defined)
}
Încearcă - l singur »

Declarată în interiorul unei funcții, are domeniul de aplicare locală (doar codul din interiorul funcției este în modul strict):

x = 3.14;       // This will not cause an error.
myFunction();

function myFunction() {
   "use strict";
    y = 3.14;   // This will cause an error (y is not defined)
}
Încearcă - l singur »

"use strict"; Sintaxă

Sintaxa, pentru declararea modul strict, a fost proiectat pentru a fi compatibil cu versiunile mai vechi ale JavaScript.

Alcătuirea un literal numeric (4 + 5;) sau un șir literal ("John Doe";) într - un program JavaScript nu are efecte secundare. Este pur și simplu compilează unei variabile non existente și moare.

Deci , "use strict" ; contează doar pentru noi compilatoare că "understand" sensul acesta.


De ce Strict Mode?

Modul strict face mai ușor de a scrie "secure" JavaScript.

Modificări modul strict acceptat anterior "bad syntax" în erori reale.

Ca un exemplu, în JavaScript normale, un nume scris greșit variabilă creează o nouă variabilă globală. În modul strict, acest lucru va arunca o eroare, ceea ce face imposibil de a crea accidental o variabilă globală.

În JavaScript normale, un dezvoltator nu va primi nici un feedback de eroare atribuirea de valori proprietăți non-inscriptibil.

În modul strict, orice misiune la o proprietate non-inscriptibil, o proprietate numai arivist, un non-existente de proprietate, o variabilă care nu există, sau un obiect non-existent, va arunca o eroare.


Nu sunt permise în modul strict

Folosind o variabilă, fără a declara aceasta, nu este permisă:

"use strict";
x = 3.14;                // This will cause an error (x is not defined)

Încearcă - l singur »

Obiectele sunt variabile prea.

Folosind un obiect, fără a declara aceasta, nu este permisă:

"use strict";
x = {p1:10, p2:20};      // This will cause an error (x is not defined)

Încearcă - l singur »

Ștergerea unei variabile (or object) nu este permisă.

"use strict";
var x = 3.14;
delete x;                // This will cause an error

Încearcă - l singur »

Ștergerea unei funcții nu este permisă.

"use strict";
function x(p1, p2) {};
delete x;                // This will cause an error 

Încearcă - l singur »

Duplicarea un nume de parametru nu este permis:

"use strict";
function x(p1, p1) {};   // This will cause an error

Încearcă - l singur »

Octale Literalii numerice nu sunt permise:

"use strict";
var x = 010;             // This will cause an error

Încearcă - l singur »

Escape caractere nu sunt permise:

"use strict";
var x = \010;            // This will cause an error

Încearcă - l singur »

Scrierea la o proprietate read-only nu este permisă:

"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});

obj.x = 3.14;            // This will cause an error

Încearcă - l singur »

Scrierea unei proprietăți numai get nu este permis:

"use strict";
var obj = {get x() {return 0} };

obj.x = 3.14;            // This will cause an error

Încearcă - l singur »

Ștergerea unei proprietăți undeletable nu este permis:

"use strict";
delete Object.prototype; // This will cause an error

Încearcă - l singur »

Șirul "eval" nu poate fi utilizat ca o variabilă:

"use strict";
var eval = 3.14;         // This will cause an error

Încearcă - l singur »

Șirul de caractere "arguments" nu pot fi folosite ca o variabilă:

"use strict";
var arguments = 3.14;    // This will cause an error

Încearcă - l singur »

WITH declarație nu este permisă:

"use strict";
with (Math){x = cos(2)}; // This will cause an error

Încearcă - l singur »

Din motive de securitate, eval() nu este permis să creeze variabile în domeniul de aplicare din care a fost numit:

"use strict";
eval ("var x = 2");
alert (x);               // This will cause an error

Încearcă - l singur »

În apeluri de funcții , cum ar fi f() , această valoare a fost obiectul global. În modul strict, este acum nedefinită.


Dovada viitoare!

cuvinte cheie rezervate viitoare nu sunt permise în modul strict. Acestea sunt:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield
"use strict";
var public = 1500;      // This will cause an error

Încearcă - l singur »


Ai grija!

Ai grija!

"use strict" directiva este recunoscută doar la începutul unui script sau o funcție.