块级作用域-《understanding ECMAScipt6》读书笔记1

针对的问题

  • 变量提升 令人困惑
  • 改变window对象或global对象的属性

块级作用域的特点

  1. 作用范围在{}内或者函数体内
  2. 不允许重复声明
  3. 无变量提升

let声明

letvar比主要有以下三个特点:

  • 无变量提升
  • 只在块级作用域内有效
  • 不允许重复声明

const声明

const声明与let声明类似,但const声明指向固定的内存指针。

  • 初始化时必须赋值
  • 一旦声明,不可改变指针指向

带来的困惑 TDZ

TDZ :暂时性死区
在块级作用域内,letconst声明前,任何对变量名的操作都会抛出异常,即使是typeof

应用场景

  • for循环中取代var
  • 取代IIFE函数

你可能感兴趣的:(块级作用域-《understanding ECMAScipt6》读书笔记1)