JavaScript中变量声明var、let、const的区别

var 是古董,没有块级作用域。
let 支持块级,但是早期访问会导致问题。
Const也支持块级别,但值不能更改。

我上周刚刚处理过一个问题,很多代码都使用 var。
赋值可以随意改变,全局变量可以随机挂起。
现在let 和const 都被使用。
重复陈述是不够的,必须牢记临时死区。

Const 定义了一个常量,对象的值是否改变并不重要。
你自己明白吗?这是第一个。

var、function、let、const变量提升

嘿嘿,看了这两篇文章,我很困惑。
变量提升、生命周期、注册、初始化、赋值,这些术语在我脑海中闪过。
后来我意识到变量提升意味着当JavaScript引擎执行代码时,它会首先读取所有变量声明。
无论您输入哪一行,它都会提前记录下来。

例如,var 关键字将为您初始化它,无论您在哪一行声明变量。
默认值是未定义的,所以如果你事先声明了var变量然后打印它,它将显示为未定义。

我们来谈谈功能。
这家伙有点特别。
它的声明和初始化是链接在一起的,因此无论您在哪里编写它都可以直接调用它。
我当时就很困惑,怎么写的到处都可以用呢?
然后是let和const,这两个家伙有点相似,但是const没有赋值阶段。
let 注册阶段与初始化是分开的。
它只创建变量,但不给它赋值,所以如果在声明let后直接打印,会显示'xisnotdefine',也就是所谓的临时死区。

后来我意识到,这些概念其实是为了更好地理解JavaScript的执行机制。
也许我有偏见,但这些细节对于学习 JavaScript 来说确实很重要。
那么,2 02 2 年,我在某个城市的某个角落,在电脑屏幕前,在这些代码面前,这就是我的感受。

普通人也能看懂的 JavaScript(1)变量与声明——从你的名字说起

用于 Node.js 的 JavaScript 代码。


注释:对于单行使用 //,对于多行使用 /.../。
变量声明:三个选项。

var:全局作用域,有变量提升。
JavaScript var年龄 = 2 5 ; console.log(年龄); // 2 5
let:块级作用域,无变量提升。
JavaScript { let name = '立花泷'; } console.log(名字); // 报错:名字未定义
const:块级作用域,值不能更改。
JavaScript { const 身高 = 1 8 0; } console.log(身高); // 报错:身高未定义
变量提升:var会提升到作用域起点,但值不会。
JavaScript 函数示例() { 控制台.log(年龄); // undefined var年龄 = 3 0; 控制台.log(年龄); // 3 0 } 示例();
范围:var 全局、let/const 块级。
JavaScript 函数示例() { var全局变量 = '外'; { 让块变量 = '内部'; } console.log(块变量); // 错误报告 } 示例();
内容: var:全局,有改进,谨慎使用。
let:区块级别,无广告,推荐。
const:块级、不可变、常量。

自己掂量一下。