Время жизни переменных


#1

Доброго времени суток!

Столкнулся со странным поведением в значениях переменной объявленной в теле модуля (самопроизвольно обнуляется).
Я понимаю, что эмпирический путь хорош, - но где можно прочитать про время жизни переменных???

  1. Переменная объявлена (var) во внепроцедурной части модуля; - где, как долго и кому доступна???
  2. Переменная объявлена (var) внутри функции; - где, как долго и кому доступна???
  3. Переменная объявлена (var) внутри функции, но она так же используется в таймере, объявленом внутри этой функции; - где, как долго и кому доступна???
  4. Переменная внутри функции инициализирована явно (MyParam = 5); - где, как долго и кому доступна???
  5. Переменная внутри функции инициализирована явно (MyParam = 5), но она так же используется в таймере, объявленом внутри этой функции; - где, как долго и кому доступна???

Заранее спасибо.


#2

vDiamond,
хотел уточнить, что вы подразумеваете под модулем — замыкание вида

(function() {})();

Какая версия движка правил wb-rules у вас установлена?

Вообще в стабильном движке пространство имен не отличается от принятого ECMAScript 5 (duktape 1.0.2).

В бета-версии wb-rules 2 глобально объявленные переменные видны только в своем сценарии (см. https://wirenboard.com/wiki/index.php/Движок_правил_wb-rules_2.0 , рАздел "Изоляция сценариев).

Коротко об области видимости:
https://getinstance.info/articles/javascript/variables-scope-in-javascript/