声明变量的问题:
1、因为之前使用var声明变量会导致变量被声明覆盖
2、声明提前
解决:
关键字:建议以后声明变量不再使用var,而是改用let
let:特点
1、不会污染全局变量
2、自动检查当前作用域内是否声明过同名变量
块级作用域:
代码执行时,遇到大括号会创建一个块级作用域,大括号结束,作用域销毁在块级作用域中,用let定义的变量块级作用域以外是不可以访问的。
const:特点
用const声明的变量必须在声明时赋值,而且不可更改,不能重新赋值。
细节:
1、常量不可变:指常量的内存空间不可变,不能保证内存空间中的其他内容不变。
2、命名:
1、从字面意义中直接看出不可变
2、多个单词用下划线分割
3、再循环中循环变量不可以使用常量
总结:
使用let和const可以避免变量提升和作用域污染的问题,更增强了代码块的封闭性和安全性。因此,在ES6中,推荐使用let和const来声明变量。