const、let是ES6新增的语法,在此之前,JavaScript中声明变量就只有通过 var 关键字
直接写结论
- const 定义的变量不可以修改,而且必须初始化
- var 定义的变量属于函数作用域,可以修改,如果不初始化会输出undefined,不会报错,可以重复声明,存在变量提升现象
- let 是块级作用域,函数内部使用let定义后,对函数外部无影响,不能重新声明
修改 | 初始化 | 作用域 | 变量提升 | 重复声明 | |
---|---|---|---|---|---|
var | 允许 | 非必须,undefined | 函数 | 有 | 允许 |
const | 不允许 | 必须 | 块级 | 无 | 允许 |
let | 允许 | 非必须 | 块级 | 无 | 不允许 |