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变量声明之后值无法改变,但仅限于其栈内存储的值,对于复合数据类型,栈内存地址,堆内存值,其堆内的值可以改变;

posted @ 2021-12-02 11:01  HaSaki_Wang  阅读(41)  评论(0)    收藏  举报