js中定义变量之②var let const的区别

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循环

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容