ES6
let 和 var 的主要区别 ?
- let 声明的变量只在当前作用域内有效
- let声明的变量不能被重复声明
- 不存在变量提升
- ES6之前的作用域:全局作用域、函数作用域、eval作用域、ES6块级作用域
ES6块级作用域是什么?
包裹在花括号中的区域{…….},
如下:
1 | if(){} |
let块级作用域范围
1 | { |
1 | { |
let 只作用在当前块级作用域
1 | for (let i = 0; i < 3; i++) { |
1 | let i; |
使用let 或者 const 聲明的变量,不能再被重新声明
1 | let dad = '宝宝'; |
1 | const dad = '宝宝'; |
暂存死区
出现相同作用域时,都是独立的,无法通过作用域链向上取值,也无法向下取值
1 | let obj = '猴子'; |