ES6 新增了let
命令,用来声明变量。它的用法类似于var
,但是所声明的变量,只在let
命令所在的代码块内有效。
let与var的区别
- let不存在变量提升
- 块级作用域:ES5 只有全局作用域和函数作用域,没有块级作用域(ES6 的块级作用域必须有大括号,如果没有大括号,JavaScript 引擎就认为不存在块级作用域)
let
不允许在相同作用域内,重复声明同一个变量
const常量
- const与let一样,唯一区别在于声明的常量不能被修改
函数声明
- ES5 规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明
- ES6 引入了块级作用域,明确允许在块级作用域之中声明函数。函数声明语句的行为类似于
let
,在块级作用域之外不可引用。