var 上一篇文章有讲过,是js定义变量的关键词。
但是在es6中,新添加了两个关键词,用于变量声明的关键词:let 和const
接下来就说一下var let 和const的区别:
首先说var
用var定义变量,可以重新赋值,当我在函数里赋值后,调用函数后,同时改变了局部变量的值。
接下来说let
用let不能重复声明一个变量。
当我在函数里重新对同一变量进行赋值后,并不会影响我函数外的变量。let是有块级作用域的。
最后来说const
const定义变量不能重复赋值。并且,const和let一样都是有块级作用域的。
补充:因为let和const 没有var的变量提升问题,所以会出现 `ReferenceError`暂时死区的情况,请看问题代码:
```
let a = 10
function foo() {
console.log(a)
let a = 30
}
foo()
```
那什么时候使用let 和const呢?
当我们定义一个变量,不会改变时,用const
其他时候一律都用let,eg:for循环