相关疑难解决方法(0)

变量声明与变量绑定相同吗?

MDN文档指出:

let 绑定是在包含声明的(块)作用域的顶部创建的,通常称为“提升”。与用 var 声明的变量不同,var 将以 undefined 值开始,而 let 变量在其定义被求值之前不会被初始化。在初始化之前访问变量会导致引用错误。从块开始直到处理初始化为止,该变量处于“临时死区”。

“绑定”指的是(和let的提升)只是关键字,还是只是创建存储空间(与关键字无关)?letconstlet

以前我以为变量关键字和变量名一起构成了一个声明,但是在我最近问的一个问题中,回答者说它们实际上是一个初始化。

javascript computer-science

4
推荐指数
1
解决办法
4950
查看次数

初始化与赋值

术语“初始化”和“赋值”似乎可以互换使用。我做了一些搜索,似乎技术上可能存在差异。我的理解是,在变量的上下文中,当 JavaScript 引擎使其可供使用时,变量就会被初始化,而赋值(无论是显式完成 [如let foo = 1;] 还是由 JavaScript 引擎完成,如下例所示)是一种方法为了达成这个。

let foo;
console.log(foo); // undefined (initialization and assignment?)
Run Code Online (Sandbox Code Playgroud)

我的理解正确吗?另外(如果是这样),在初始化过程中实际发生了什么以使变量可用?

javascript computer-science

1
推荐指数
1
解决办法
972
查看次数

标签 统计

computer-science ×2

javascript ×2