JavaScript中使用 var 和 let 和 const 的差异
简单的三种生命变量的方式,存在着较大的差异。
首先js预编译阶段差异:
var 存在变量提升
let 不存在变量提升 先声明后使用否在报错。
const 不存在变量提升 先声明后使用否在报错。
声明基本数据类型(原始数据类型)和引用数据类型差异:
var 和 let 在生命变量之后,二次修改变量堆栈数据时,变量随即改变。
但是const生命的变量保存的是栈当中的数据(原始值或者指针)。 当修改原始值(基本数据类型的时候,const是不可更改的。可以理解为const一个变量,占栈内存中的值或址是不可变的。)
ES5------》var 只存在全局作用域和函数作用域。
ES6------》let 和 const 存在块级作用域概念。
注意开辟的是栈内存还是堆内存。
.......待补充