变量提升&函数提升

JS引擎在正式执行前会预编译,将变量和函数声明提升至当前作用域顶端,函数提升优先级最高。而let没有变量提升,不允许重复声明,有暂时性死区和块级作用域,在定义前使用会报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##变量提升
通常JS引擎会在正式执行之前先进行一次预编译,在这个过程中,首先将变量声明及函数声明提升至当前作用域的顶端,然后进行接下来的处理。
##函数提升
函数的优先权是最高的,它永远被提升至作用域最顶部,然后才是函数表达式和变量按顺序执行。
##let的特性
1.let没有变量提升
没有变量提升的let,如果你在定义它之前输出它的话,就会报错了。
2、Let不允许重复声明
var 可以重复声明,很随意 ,但是let不行,
let不能重新声明一个变量,记住是声明,不是赋值,可以重新赋值因为他是变量。
3.let有暂时性死区
let在他的的的当前作用域范围内,不允许其他同名变量进来
4.Let有块级作用域
let有块级作用域,不光在函数里有,在循环里也有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值