一:前言
我们前端的小伙伴在写代码时用的是javascript;而后端的小伙伴用的是java,这样我们可以很明显的感受到,我们比他们多了个script;就像PS和Adobe Photoshop,是不是瞬间就高级起来了,而且这个词还是个六级词汇。但是在不断的学习中,我们会发现JS越来越接近java了,下面我就简单说明一下我对let,var和const的区别;
二:let
let与var类似,但是let是一个局部变量,我们来看一个代码来理解var和let的区别
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 10
代码解析:
这个代码我们要注意到,声明的数组a和for循环里的i都是一个全局变量,那么每次执行循环时i的指向都是全局中的i当循环完毕时i的值也就变为10,当我们输出i的时候他找到就是全局变量i,输出结果也是10。
但我们把for循环里边的var变成let,那么a6输出结果就是6,我们可以理解成每次执行循环时都有重新声明了一个i,他们只在自己的作用域下起作用。
三:const
const的理解就很简单了,其声明语法与var,let类似,但是他具有不一样的意义,使用const声明的变量他不能在改变了,否则会报错。
四:总结
前言部分就是一个玩笑,但是我们可以看到JS的一些新增的东西我们都可以在其他语言中找到他的影子,这些东西的出现是为了应对现实的应用场景,这也就是程序员需要不断学习的原因所在,时刻保证自己在技术的前前沿。