第一节 块级声明 let const

块级声明变量 let
  1. 一个函数内部
  2. 被一对花括号包裹
  3. 禁止重复声明,但在嵌套的作用域中可以,因为没有变量提升了嘛。
    不会进行变量提升,如需要,需手抖在函数体头部声明变量。
声明常量const
  1. 与let一样都是块级声明变量
  2. const用来声明常量,一旦声明不可修改
  3. 必须在声明的时候被初始化,否则运行的时候报错
  4. 当使用const声明对象的时候,会阻止变量绑定,但是不会阻止修改对象成员。
  5. 与let一样不可以被重复声明。
  6. const的本质是保证变量指向的内存地址不可变。简单数据类型,值就保存在那个地址中。但是符合数据类型变量保存的是一个指针。指向对象数组保存的地址。该指针不可变,但是对象数组是可变的。
暂时性死区(TDZ)

在代码快中使用 let const 声明变量常量,会造成暂时性死区,即在执行到该声明语句之前,是无法访问该变量/常量的,即使是 typeof 也会报错。特备注意是在代码块中会存在此特性
在代码块内使用let const声明的变量常量,在代码快外使用 typeof 不会报错

再循环中使用let const
  1. 在循环内使用let声明i 避免在外面访问到
  2. 巧妙使用let 实现闭包的功能
  3. for 循环中不要用const声明’i’ 在进行i++时报错。
  4. for-in for-of 循环中使用不会报错
全局块级绑定

使用 var 声明的全局变量会挂载到 window 对象下,容易造成覆盖原对象中的成员。使用 let const 声明的全局变量不会挂载到 window 对象下。

最佳实践

在默认情况下使用const,而只在你知道变量值需要被改变的情况下才使用 let 这在代码中能确保基本层次的不可变性,有助于防止某些类型的错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值