JavaScript基础 var let const的区别

var let const的区别

var

  1. var声明的变量是具有函数作用域
  2. var声明的变量会提升(提升是指变量的声明会被拿到函数或者全局作用域的顶部)
  3. 全局作用域中使用var声明变量,该变量会变成window的属性
  4. 可以多次使用var声明同一变量
  5. 可以修改变量

let

  1. let声明的变量具有块级作用域(即花括号{}括住的)
  2. let声明的变量不会提升
  3. let在全局作用域声明变量不会变成window的属性
  4. 在一个作用域里面变量名只能用let声明一次,不能重复声明
  5. 可以修改变量

const

  1. const与let的类似,符合前四点
  2. const 声明的时候就要初始化变量
  3. const 声明之后就不能修改

使用const let的优点

  1. 有助于提升代码质量
  2. 优化性能(块级作用域比函数作用域更早结束,有可能会更早地让垃圾回收程序介入)

注意:不添加什么标识符直接给变量赋值会默认认为只给window属性赋值

为什么会变量提升

在函数执行时会有个函数执行上下文,是在函数创建的时候确定的,函数执行上下文会把函数里面的变量和方法提取出来,var 声明的变量创建并初始化undefined,function声明的方法创建初始化并赋值为可以使用的function,放在函数执行上下文顶端;所以变量会提升

什么是暂存死区

var a=1;
{
console.log(a);//这时候这里会报错,因为块作用域内a还没初始化
let a=1;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值