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就行了。

 

转载于:https://www.cnblogs.com/gouzei/p/10825288.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值