javaScriot中let,const,var的区别

javaScriot中let,const,var的区别**

目录
1.是否存在变量提升?
2.是否存在暂时性死区?
2.是否允许重复声明变量?
4.是否存在块级作用域?
5.是否能修改声明的变量?
Ess中,声明变量只有varfunction两种形式。但是因为var声明的变量会有一定的缺点(内层变量可能覆盖外层变量的问题以及用来计数的循环变量泄露为全局变量,下面介绍),Es6提出了使用letconst声明变量,弥补了Es5var的缺点

1.是否存在变量的提升?

`

  • var声明的变量存在变量提升(将变量提升到当前作用域的顶部)。即变量可以在声明之前调用,值为undefined。

  • letconst不存在变量提升。即它们所声明的变量一定要在声明后使用,否则报ReferenceError

2.是否存在暂时性死区?

let和const存在暂时性死区。即只要块级作用域


版权声明:本文为weixin_47236535原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。