Как интерпретируется оператор "use strict"в узле.Джей? [дубликат]
этот вопрос уже есть ответ здесь:
- Что делает "use strict" в JavaScript, и каковы причины этого? 25 ответов
Я начал исследовать узел.js и написал много демонстрационных веб-приложений, чтобы понять поток узла.Яш, Экспресс.js, нефрит, etc..
но одна вещь, с которой я столкнулся недавно, это утверждение "use strict"
как первая строка внутри каждой функции и каждый .
как именно это интерпретируется узлом.Джей?
1 ответ:
"use strict";
в основном это позволяет строгий режим.
строгий режим-это функция, которая позволяет вам установить программу или функцию, в "жесткие" условия. В строгом рабочем контексте форма метода связывает это с объектами, как и раньше. Форма функции связывает это с неопределенными, а не глобальными объектами набора.
в соответствии с вашими комментариями вы говорите, что некоторые различия будут там. Но это ваше предположение. узел.js код ничего но кода JavaScript. Весь Узел.JS-код интерпретируется с помощью V8 JavaScript engine. Элемент V8 JavaScript Engine - это движок JavaScript с открытым исходным кодом, разработанный Google для веб-браузера Chrome.
таким образом, не будет никакой существенной разницы, как
"use strict";
интерпретируется браузером Chrome и узлов.js.пожалуйста, прочитайте, что такое строгий режим в JavaScript.
дополнительные информация:
- строгого режима
- поддержка строгого режима ECMAScript 5 в браузерах
- строгий режим приходит в город
- Таблица совместимости для строгого режима
- вопросы переполнения стека: что делает "use strict" в JavaScript и каковы его причины
ECMAScript 6:код ECMAScript 6 и строгий режим. Ниже кратко из спецификации:
10.2.1 Код Строгого Режима
синтаксическая единица сценария ECMAScript может быть обработана с использованием синтаксиса и семантики неограниченного или строгого режима. Код интерпретируется как код строгого режима в следующих ситуациях:
- глобальный код-это код строгого режима, если он начинается с пролога директивы, который содержит директиву Use Strict (см. 14.1.1).
- код модуля всегда строгий код режима.
- все части ClassDeclaration или ClassExpression являются строгим кодом режима.
- код Eval-это код строгого режима, если он начинается с пролога директивы, содержащего директиву Use Strict, или если вызов eval является прямым eval (см. 12.3.4.1), содержащимся в коде строгого режима.
- код функции строгий код режима если связанные FunctionDeclaration, FunctionExpression, GeneratorDeclaration, GeneratorExpression, MethodDefinition или ArrowFunction содержатся в коде строгого режима или если код, который создает значение внутреннего слота функции [[ECMAScriptCode]], начинается с пролога директивы, содержащего директиву Use Strict.
- код функции, который предоставляется в качестве аргументов для встроенных конструкторов функций и генераторов, является кодом строгого режима, если последний аргумент является Строка, которая при обработке является FunctionBody, которая начинается с пролога директивы, содержащего директиву Use Strict.
кроме того, если вы потерялись в том, какие функции поддерживаются вашей текущей версией узла.Яш, это узел.зеленый может помочь вам (использует те же данные, что и kangax).