Come viene interpretata l'istruzione 'uso rigoroso' in Node.js?

Ho iniziato a esplorare il Node.js e ho scritto molte applicazioni demo per comprendere il stream di Node.js, Express.js, giada, ecc.

Ma una cosa che ho incontrato recentemente, è l'affermazione "use strict" come la prima linea all'interno di each function e each file .js .

Come esattamente viene interpretato da Node.js?

"use strict";

Fondamentalmente consente la modalità rigorosa.

La modalità rigorosa è una funzionalità che consente di inserire un programma o una function in un context operativo "rigoroso". In un context operativo rigoroso, il metodo del metodo si lega agli oggetti come prima. Il module di function lega questo a undefined, non agli oggetti impostati globali.

Come per i tuoi commenti stai dicendo che alcune differenze saranno lì. Ma è la tua ipotesi. Il codice Node.js non è altro che il codice JavaScript. Tutti i codici Node.js vengono interpretati dal motore JavaScript V8 . Il motore JavaScript V8 è un motore JavaScript open source sviluppato da Google per il browser Web di Chrome.

Quindi, non ci sarà grande differenza come "use strict"; viene interpretato dal browser Chrome e da Node.js.

Leggi quale sia la modalità rigorosa in JavaScript.

Per maggiori informazioni:

  1. Modalità rigorosa
  2. ECMAScript 5 Supporto rigoroso di modalità nei browser
  3. La modalità rigorosa sta arrivando in città
  4. Tabella di compatibilità per la modalità rigorosa
  5. Domande su overflow di stack: cosa fa 'usare rigido' in JavaScript e qual è il ragionamento dietro di esso

ECMAScript 6:

Codice ECMAScript 6 e modalità rigorosa. Di seguito è riportto quanto segue:

10.2.1 Codice di modalità rigorosa

Un'unità sintattica di script ECMAScript può essere elaborata utilizzando la syntax e la semantica in modalità restrittiva o rigorosa. Il codice viene interpretato come codice di modalità rigorosa nelle seguenti situazioni:

  • Il codice globale è il codice di modalità rigorosa se inizia con un prologo della direttiva che contiene una direttiva rigorosa dell'uso (vedere 14.1.1).
  • Il codice del module è sempre il codice di modalità rigorosa.
  • Tutte le parti di una dichiarazione di class o di una class di espressione sono codice di modalità rigorosa.
  • Il codice Eval è il codice di modalità rigorosa se inizia con un prologo della direttiva che contiene una direttiva rigorosa di utilizzo o se la chiamata a eval è un eval diretto (vedere 12.3.4.1) contenuta in un codice di modalità rigorosa.
  • Il codice function è il codice di modalità rigorosa se la function FunctionDeclaration, FunctionExpression, GeneratorDeclaration, GeneratorExpression, MethodDefinition o ArrowFunction è contenuta in un codice di modalità rigorosa o se il codice che produce il valore dello slot interno [[ECMAScriptCode]] di function inizia con un prologo della direttiva che contiene una direttiva rigorosa dell'uso.
  • Il codice function fornito come argomenti per i costruttori integrati di funzioni e generatori è il codice di modalità rigorosa se l'ultimo argomento è una string che quando viene elaborata è una funzionalità che inizia con un prologo di direttiva che contiene una direttiva rigorosa di utilizzo.

Inoltre, se si perde su quali funzionalità sono supportte dalla versione corrente di Node.js, questo node.green può aiutarti (utilizza lo stesso dato di kangax ).