In che modo l’istruzione ‘use strict’ è interpretata in Node.js?

Ho iniziato ad esplorare Node.js e ho scritto molte applicazioni web demo, per capire il stream di Node.js, Express.js, jade, ecc.

Ma una cosa che ho trovato di recente, è la frase "use strict" come prima riga all’interno di ogni funzione e ogni file .js .

Quanto è esattamente interpretato da Node.js?

"use strict";

Fondamentalmente abilita la modalità rigorosa.

La modalità rigorosa è una funzionalità che consente di posizionare un programma o una funzione in un contesto operativo “rigoroso”. In un contesto operativo rigoroso, il modulo metodo lo associa agli oggetti come prima. La forma della funzione lo lega a non definito, non agli oggetti dell’insieme globale.

Secondo i tuoi commenti, stai dicendo che ci saranno delle differenze. Ma è la tua ipotesi. Il codice Node.js non è altro che il tuo codice JavaScript. Tutti i codici Node.js sono interpretati dal motore JavaScript V8 . Il motore JavaScript V8 è un motore JavaScript open source sviluppato da Google per il browser Web Chrome.

Quindi, non ci saranno grandi differenze su come "use strict"; è interpretato dal browser Chrome e Node.js.

Si prega di leggere qual è la modalità rigorosa in JavaScript.

Per maggiori informazioni:

  1. Modalità rigorosa
  2. ECMAScript 5 Supporto della modalità rigorosa nei browser
  3. La modalità rigorosa sta arrivando in città
  4. Tabella di compatibilità per la modalità rigorosa
  5. Domande Stack Overflow: cosa fa ‘use strict’ in JavaScript e qual è il ragionamento che sta dietro

ECMAScript 6:

Codice ECMAScript 6 e modalità rigorosa. Di seguito è breve dalla specifica :

10.2.1 Codice della modalità rigorosa

Un’unità sintattica di ECMAScript Script può essere elaborata usando la syntax e la semantica della modalità illimitata o rigorosa. Il codice viene interpretato come codice di modalità rigoroso nelle seguenti situazioni:

  • Il codice globale è un codice di modalità rigoroso se inizia con un prologo di direttiva che contiene una direttiva sull’uso rigoroso (vedere 14.1.1).
  • Il codice del modulo è sempre un codice di modalità rigoroso.
  • Tutte le parti di ClassDeclaration o ClassExpression sono codice di modalità rigoroso.
  • Il codice Eval è un codice di modalità rigoroso se inizia con un Prologo di direttiva che contiene una Direttiva sull’uso rigoroso o se la chiamata a eval è una valutazione diretta (vedere 12.3.4.1) contenuta nel codice di modalità rigoroso.
  • Il codice funzione è un codice di modalità rigoroso se la relativa FunctionDeclaration, FunctionExpression, GeneratorDeclaration, GeneratorExpression, MethodDefinition o ArrowFunction è contenuta nel codice della modalità strict o se il codice che produce il valore dello slot interno [[ECMAScriptCode]] della funzione inizia con un prologo di direttiva che contiene una direttiva sull’uso rigoroso.
  • Il codice funzione fornito come argomento per i costruttori di funzione e generatore incorporati è il codice della modalità rigorosa se l’ultimo argomento è una stringa che, quando elaborata, è un FunctionBody che inizia con un prologo direttiva che contiene una direttiva sull’uso rigoroso.

Inoltre, se ti perdi le funzionalità supportate dalla tua attuale versione di Node.js, questo node.green può aiutarti (utilizza gli stessi dati di kangax ).