前言:今天看到同事的代码,很多变量都是用const声明的。记得之前看过文章说es6建议用let,至于为什么要用let,不建议用const就忘了。今天再来复习一下。资料参考:
一、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就行了。