局部变量去哪儿了?

Where do local variables go?

假设我有一个

<!DOCTYPE html>
<html>

<head>
    <title>Eucalyptus</title>
</head>

<body style="background-color: #FFE11A">
    <div id="gore" style="background-color: #BEDB39">gore
        <button id="prvi" style="width: 50px; height: 50px; border-radius:10px;">Kurac</button>
        <div id="drugi">Drekec</div>
    </div>
    <div id="dolje">dolsdasdje</div>
    <script>
    var AAA1 = 1;
    (function(a, b) {
        var AAA3 = a + b;
        AAA2 = a * b;
    })(10, 10);
    </script>
</body>

</html>

我显然可以看到 window.AAA1window.AAA2 但是 AAA3 在哪里? 是否有可能以某种方式挂钩它并从控制台即时编辑它,或者它是否只是在机器代码中的某个地方混乱而无法再访问?

它包含在创建它的函数的范围内。如果您希望它在全球范围内可访问,请执行 window.AAA3 = '??';

有关 JavaScript 范围的概述,请参阅此其他答案:

What is the scope of variables in JavaScript?

AAA3 是一个 local 变量,不能在 function 或当前范围之外访问。

Variable declarations, wherever they occur, are processed before any code is executed. The scope of a variable declared with var is its current execution context, which is either the enclosing function or, for variables declared outside any function, global.

在以下位置了解有关 JavaScript 变量范围的更多信息:

MDN JavaScript Variable scope

Whosebug JavaScript Variable scope

已编辑:

看过Javascript Global Variables。它有很多可能对你有用的信息。

In JavaScript 在函数范围或全局范围创建的变量。

这里 var AAA3 是在功能范围内创建的,它存储在堆栈内存中。

一旦函数执行完成,栈上为该函数创建的数据段被弹出,局部变量的内存占用被释放。 因此,函数执行完成后,它们将不可用。