javascript
var、let、const 的差异?
相同点
var
、let
、const
三者都可以声明变量。变量可以看作盒子,变量名就是盒子名称,值是放在盒子里的东西。
差异
var、let、const 三者的差异:
注:
暂时性死区:Temporal dead zone(TDZ)
全局属性:是否会被添加到 window 或 globalThis 等对象中
暂时性死区
从一个代码块的开始直到代码执行到声明变量的行之前,let 或 const 声明的变量都处于“暂时性死区中。简单理解:let 或 const 只能先声明再访问。如下面的代码:
同理,使用 const 声明变量,如果在声明前使用,表现与 let 一致。var 声明的全局变量会进行变量提升:
全局属性
var 声明的变量会被添加到全局对象中,可以使用 window 和 globalThis 访问,let 和 const 声明的全局变量则不会添加到全局对象中。
谈谈作用域?
javascript
http://example.com/2024/05/10/javascript/