let和const命令
let
1. ES6新增了let
命令,用来声明变量。它的用法类似于var
,但是所声明的变量,只在let
命令所在的代码块内有效。
2. 不存在变量提升
3. 暂时性死区
4. 不允许重复声明
块作用域:
- 允许在块级作用域内声明函数。
- 函数声明类似于
var
,即会提升到全局作用域或函数作用域的头部。 - 同时,函数声明还会提升到所在的块级作用域的头部。
const
const
声明一个只读的常量。一旦声明,常量的值就不能改变。
其他同let
全局对象的属性
ES6为了改变这一点,一方面规定,为了保持兼容性,
var
命令和function
命令声明的全局变量,依旧是全局对象的属性;
let
命令、const
命令、class
命令声明的全局变量,不属于全局对象的属性。