2019/5/7学习日记-变量声明(let、const、var)

  前言:今天看到同事的代码,很多变量都是用const声明的。记得之前看过文章说es6建议用let,至于为什么要用let,不建议用const就忘了。今天再来复习一下。资料参考:https://www.tslang.cn/docs/handbook/variable-declarations.html

一、var和let的区别

  首先看一下var和let的区别,为什么要用let。简而言之就是var存在作用域混乱问题,常见的例子

for (var i = 0; i < 3; i++) {
    setTimeout(function() { console.log(i); }, 100 * i);
}
//3
//3
//3

  而如果用let声明i,就迎刃而解了。因为let不仅在循环里引入了一个新的变量环境let i=0;而且每次迭代都会创建这样一个新的作用域。因此 i 每次都能被保存。而var则相反,一直使用一个变量,变量被不停迭代.

for (let i = 0; i < 3; i++) {
    setTimeout(function() { console.log(i); }, 100 * i);
}
//0
//1
//2

 

一、let和const的区别

1、let声明的是变量;而const声明的是常量,只读,修改值会报错(const是对let的一个增强,它能阻止对一个变量再次赋值)

二、共同点

1、const是对let的一个增强,拥有let的特性。

2、严格来讲,预计不需要修改的值都应该用const声明。这样可以监控到数据的流动。但是鉴于实际开发的便利性,const会显得比较麻烦,我们需要考虑每个变量是否会变。所以使用let就行了。

 

posted @ 2019-05-07 14:33  倒带_with  阅读(187)  评论(0)    收藏  举报