var 关键字:ES5 标准,用 var 关键字声明的变量存在变量提升,即会将变量提前到当前作用域顶部进行声明,不存在块级作用域,允许重复声明同名变量,变量声明后可被修改。
let 关键字:ES6 标准,声明的变量不存在变量提升,变量在当前块作用域及子作用域内才可访问,不允许重复声明同名变量,变量声明后可被修改。
const 关键字:ES6 标准,声明的变量不存在变量提升,在当前块作用域内才可访问,不允许重复声明同名变量,变量声明后不可被修改。
var、let、const 关键字的区别一览
关键字 | 所属标准 | 变量提升 | 块作用域 | 重复声明同名变量 | 变量声明后修改 |
---|---|---|---|---|---|
var | ES5 | 有 | 无 | 允许 | 可以 |
let | ES6 | 无 | 有 | 不允许 | 不可以 |
const | ES6 | 无 | 有 | 不允许 | 不可以 |