文章目录

针对的问题

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

块级作用域的特点

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

let声明

letvar比主要有以下三个特点: + 无变量提升 + 只在块级作用域内有效 + 不允许重复声明

const声明

const声明与let声明类似,但const声明指向固定的内存指针。 + 初始化时必须赋值 + 一旦声明,不可改变指针指向

带来的困惑 TDZ

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

应用场景

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

文笔简陋,如有错误,还请指正!谢谢!

总浏览数:
总访客数: