var、let、const
作用域
ES5(var)中有全局作用域、函数作用域,ES6(let、const)中新增了块级作用域;
故var变量可能的作用域有:全局作用域、函数作用域;
let、const变量可能的作用域有:全局作用域、函数作用域、块级作用域;
变量提升
var存在变量提升,既在定义之前就可以使用此变量;
console.log(a);
var a = 1;
>> undefined
console.log(b);
let b = 1;
>> Uncaught SyntaxError
重复声明
var可以重复声明,let、const不可以;
赋值
const声明时必须赋值,let和var不用;
const变量声明之后值无法改变,但仅限于其栈内存储的值,对于复合数据类型,栈内存地址,堆内存值,其堆内的值可以改变;

浙公网安备 33010602011771号