let、const、var的区别? 变量提升? 暂时性死区?

let、const、var的区别?  变量提升? 暂时性死区?

var: 全局变量 全局使用 拥有变量提升特性(在声明之前使用 值为undefined) 可通过window访问
let: 块作用域 可以任意修改值 不能定义同一作用域的同名变量 不能先使用再声明 拥有暂时性死区
const: let一样块作用域 没有变量提升特性 不能重复定义 拥有暂时性死区 

不同点:const声明时必须赋初始值 且初始值的地址不可修改 但可以修改初始地址上对应的值

为什么const有些时候可以修改变量的值?

Const值判断地址指向是否一样 对其进行操作只要最后地址指向还是同一个是允许修改的

什么叫变量提升?

JavaScript 函数及变量的声明都将被提升到函数的最顶部 变量可以在使用后声明 也就是变量可以先使用再声明 var声明的变量存在变量提升 letconst不存在变量提升;

什么叫暂时性锁区?

JavaScript中 声明一个var变量a 在块级作用域中又用let声明了一个同名变量即变量a 那么在块级作用域内let声明语句之前使用变量a则会报错即暂时性死区 let只能先声明再使用 同名变量a在块级作用域中用let又声明一遍 则默认之前变量a为先使用未声明

纯粹个人理解 语言上可能有一些不恰当的表达或是有其他知识没有提到欢迎补充~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值