JavaScript中使用 var 和 let 和 const 的差异

简单的三种生命变量的方式,存在着较大的差异。

  首先js预编译阶段差异:

    var   存在变量提升   

    let     不存在变量提升   先声明后使用否在报错。

    const  不存在变量提升   先声明后使用否在报错。

  声明基本数据类型(原始数据类型)和引用数据类型差异:

    var 和 let 在生命变量之后,二次修改变量堆栈数据时,变量随即改变。

    但是const生命的变量保存的是栈当中的数据(原始值或者指针)。  当修改原始值(基本数据类型的时候,const是不可更改的。可以理解为const一个变量,占栈内存中的值或址是不可变的。)

  ES5------》var 只存在全局作用域和函数作用域。

  ES6------》let 和 const 存在块级作用域概念。

 注意开辟的是栈内存还是堆内存。

.......待补充

  

  

 

posted @ 2020-04-22 11:43  Action_swt  阅读(127)  评论(0编辑  收藏  举报