var 上一篇文章有讲过,是js定义变量的关键词。
但是在es6中,新添加了两个关键词,用于变量声明的关键词:let 和const
接下来就说一下var let 和const的区别:
首先说var
var代码 在浏览器控制台输出的结果用var定义变量,可以重新赋值,当我在函数里赋值后,调用函数后,同时改变了局部变量的值。
接下来说let
let代码1 a已经被声明用let不能重复声明一个变量。
let代码2 在浏览器控制台输出的结果当我在函数里重新对同一变量进行赋值后,并不会影响我函数外的变量。let是有块级作用域的。
最后来说const
const代码1 在浏览器控制台输出报错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循环
网友评论