javascript - 关于 "function invocation and the execution stack"中的示例

标签 javascript html

关于“函数调用和执行堆栈”中的示例。

function a() {
  b();
  var c;
}

function b() {
  var d;
}

a();
var d;

为什么“var d”不存储在全局执行上下文的内存中?我认为不在其他函数内的函数和变量应该附加到全局执行堆栈中的全局对象。

最佳答案

当它被调用时,它将在全局执行上下文中和 b() 的执行上下文中。 JavaScript 允许隐藏变量 所以当在 b() 的上下文中定义的变量 d 就是你得到的,但在其他地方你会得到全局的变量 d

function a() {
  b();
  var c;
}
 
function b() {
  var d;
  console.log("var d inside b() ${d}");
}
 
a();
var d;
console.log("var d in global ${d}");

关于javascript - 关于 "function invocation and the execution stack"中的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58688504/

相关文章:

html - 将元素定位在另一个之下

javascript - 动态元素在调用时不响应

PHP-我正在尝试在 php 代码中循环 sql 查询以进行多个复选框选择

javascript - img 上的 onClick 有效,但即使在 JavaScript 中也无法动态附加相同的内容,这是怎么回事?

javascript - 以相同初始名称开头的类的 jquery 单击事件

c# - MVC 3 - 在服务器端获取下拉列表中的值在 JavaScript 上更改

javascript - React 中将光标置于输入框 onChange 中

javascript - "Dropdown-Menu"试图打开 child 时关闭

javascript - `inline-block` 父元素宽度错误

javascript - 页面上 jquery 支持的 UI 的最佳实践?