1. let 和 const 命令
ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 例如: `{ let a = 10; var b = 1; }
a // ReferenceError: a is not defined.
b // 1
2. let 用于for循环最美滋滋
var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10
上面使用var声明变量,为何输出的结果与预期不一样呢?原因是变量i是var声明的,在全局范围内都有效。所以每一次循环,新的i值都会覆盖旧值,导致最后输出的是最后一轮的i的值。
解决办法就是:
var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6
上面代码中,变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。
3. let声明变量不会出现变量提升
例如: console.log(foo); // 输出undefined console.log(bar); // 报错ReferenceError
var foo = 2; let bar = 2;
4.暂时性死区
在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区” 在使用时,变量一定要先使用let声明再使用,否则就容易gg。
5. 不允许重复声明
使用let声明变量时不可以重复声明变量,不然就会报错,不会像var一样覆盖前一个变量,所以记住了哦。
6.const命令
const声明一个只读的常量。一旦声明,常量的值就不能改变。 例如: const PI = 3.1415; PI // 3.1415
PI = 3; // TypeError: Assignment to constant variable. 所以如果想要声明一个只读的常量可以使用const,如果想要后期更改变量的话就是用let,够骚
7.学习时间
2021.06.14 早上
8.学习小结
在使用es6时一直有用这两个命令来声明变量,但是没有真正去理解使用它们的缘由以及它们的故事,现在查看一些资料后,比以前懂得更多,上面只是一小部分,剩余的还在我的脑海里哈哈哈哈哈