Поведение глобальной среды в узле JS - PullRequest
1 голос
/ 02 октября 2019

В Javascript я знаю, что области обрабатываются с использованием структуры данных, называемой декларативная запись среды , а в глобальной среде есть дополнительная, называемая запись среды объекта [1] [2] .

  • запись среды объекта дескрипторы var и объявление функции
  • декларативная запись среды дескрипторы let , const и class декларации

Но, вNode.js кажется, что это поведение не соответствует правилам выше. Как

    //in node.js
    var a = 1;
    console.log(global.a) //prints undefined so OER didn't handle this declaration

    b = 2;
    console.log(global.b) //prints 2 so declarations without var makes the OER handle the variable declaration

Итак, обрабатывает ли объект DER var и функций объявлений вместо OER в Node.js? и разделяется ли он между модулями, требуя их как OER?

Пример

//module foo.js
var x = 10;
y = 20;

и в другом файле

//module bar.js
var foo = require("./foo");
console.log(x) //undefined
console.log(y) //prints 20
...