参考:http://www.runoob.com/js/js-let-const.html
1.变量提升
- let和const是没有变量提升的功能,需要先申明再使用。有暂时性死区,也就是若一个变量先使用,后声明,若用var声明,则编译后返回undefined,若用let声明,则报错
- var和function具有变量提升的功能
2.作用域
在 ES6 之前,JavaScript 只有两种作用域: 全局变量 与 函数内的局部变量。 - 在函数内部用var声明的变量,只在函数内部起作用,如果不使用 var ,则是全局变量。let和const声明的变量具有块级作用域。使用 var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到。
- const的特殊性
- const用于声明常量,普通数据类型的值是无法改变的,但如果是一个引用数据类型,只要内存地址不变,对象中的值是可以变化的
- const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改
网友评论