Как определено в JavaScript, переменные var
, let
и const
могут быть использованы, но разница лишь в том, что var
сохраняется автоматически, в то время как let
и const
являются временными для своего блока
app.post("/test", () => {
var a = 1;
return a;
});
app.get("/test", () => {
return a;
});
💡 Определения переменных без идентификатора, такие как
a = 1
— это операция upsert, которая также автоматически сохраняется.
Поток управления
nucleoid.run(() => {
var a = 1;
var b = a + 2;
var c = b + 3;
});
Как только переменная определена как var a = 1
(это не относится к let
или const
), среда выполнения делает три основные вещи. Во-первых, помещает var a
в граф и устанавливает связь между зависимыми переменными.
Во-вторых, обновляет state новыми значениями, чтобы повлиять на
Состояние | |
---|---|
var a |
1 |
var b |
3 |
var c |
6 |
Однако фактическое выполнение отличается, поскольку переменные отслеживаются в графе.
state.a = 1;
state.b = state.a + 2;
state.c = state.b + 3;
и, наконец, сохраняет утверждения в управляемом временем выполнения fs