【ES6】let、const

[TOC]

块级作用域

let const

let

  • let作用域:大括号块中、函数内部
  • let声明不会被提升,所以会出现临时死区(TDZ)
  • 如果作用域中存在的某个标识符再次使用let关键字声明就会报错
  • let在for这类的循环中,每次迭代都会创建一个新的变量,并以之前的同变量名值初始化

const

  • 每个通过const声明的变量必须进行初始化
  • const与let都是块级标识符,只在当前代码块内有效
  • const也不会被提升
  • const常量名不能与var、let变量名重名
  • const声明对象不允许修改绑定,可以修改绑定的对象的属性值,如:
    const Person={name:”ww”}; Person.name=”aaa”;
  • const在for-in for-of循环中使用行为与let一样,都会每次创建一个新的绑定

ES6中,默认使用const,确实需要改变的变量使用let

ES6中let、const、class声明的全局变量不属于window对象

热评文章