对比var观察let的块级作用域的理解

let: 允许你声明一个作用域被限制在块级中的变量、语句或者表达式 let 绑定不受变量提升的约束,这意味着 let 声明不会被提升到当前
该变量处于从块开始到初始化处理的“暂存死区”

var: 声明变量的作用域限制在其声明位置的上下文中,而非声明变量总是全局的
由于变量声明(以及其他声明)总是在任意代码执行之前处理的,所以在代码中的任意位置声明 变量总是等效于在代码开头声明

const: 声明创建一个值的只读引用 (即指针) 基本数据当值发生改变时,那么其对应的指针也将发生改变,故造成 const
申明基本数据类型时再将其值改变时,将会造成报错, 例如 const a = 3 ; a = 5 时 将会报错
但是如果是复合类型时,如果只改变复合类型的其中某个 Value 项时, 将还是正常使用

在这里插入图片描述
这里let使用的是块级作用域,let b=2只在那个花括号的范围内起作用,而var使用的上下文作用域且会提升到function的头部去相当于var b=1;var b=2;
因此以上的输出才会是那个样子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值