let
- 不能够重复声明
- 会形成暂时性死区
- 不存在产量提升
- 会形成块级作用域
const
- 使用const声明的变量保证的是声明时指向的内存地址不变
- 声明时必须要赋值
- 其余同let特性一样
块级作用域
已实现es6和未实现es6的浏览器运行环境的差异太大,应尽量避免块级作用域内声明函数,如果需要应使用函数表达式的方式
引const 1.
冻结对象 可以使用Object.freeze()
ES6 共提供了6种声明变量的方式
var let const class import function
顶层对象 window/global
顶层对象和全局对象是不一样的,ES5及之前全局对象是挂载在全局对象上,ES6中顶层对象的声明将不会添加到window上,var, function例外