1.可以使用 let 关键字来实现块级作用域。let 声明的变量只在 let 命令所在的代码块 {} 内有效,在 {} 之外不能访问。
2.在块中重新声明变量也会重新声明块外的变量。let 关键字就可以解决这个问题,因为它只在 let 命令所在的代码块 {} 内有效。
3.在 JavaScript 中, 全局作用域是针对 JavaScript 环境。
在 HTML 中, 全局作用域是针对 window 对象。
使用 var 关键字声明的全局作用域变量属于 window 对象,而使用 let 关键字声明的全局作用域变量不属于 window 对象。
4.变量提升:JavaScript 中,var 关键字定义的变量可以在使用后声明,也就是变量可以先使用再声明,而let 关键字定义的变量则不可以在使用后声明,也就是变量需要先声明再使用。
5.const
定义常量与使用let
定义的变量相似:
- 二者都是块级作用域
- 都不能和它所在作用域内的其他变量或函数拥有相同的名称
两者还有以下两点区别:
const
声明的常量必须初始化,而let
声明的变量不用- const 定义常量的值不能通过再赋值修改,也不能再次声明。而 let 定义的变量值可以修改。