es6新增语法
1.let
特点:
1.let关键字就是用来声明变量的
2.使用let关键字声明的变量具有块级作用域
if (true) {
let a = 10;
}
console.log(a) // a is not defined
注意:使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性。
3. 在一个大括号中 使用let关键字声明的变量才具有块级作用域 var关键字是不具备这个特点的
4.防止循环变量变成全局变量
5.使用let关键字声明的变量没有变量提升
6.使用let关键字声明的变量具有暂时性死区特性
var tmp = 123;
if (true) {
tmp = 'abc';
let tmp;
}
2.const
1.const声明的变量是一个常量
const PI = 3.14;
PI = 100; // Assignment to constant variable.const ary = [100, 200];
ary[0] = 'a';
ary[1] = 'b';
console.log(ary); // ['a', 'b'];
ary = ['a', 'b']; // Assignment to constant variable.
2.既然是常量不能重新进行赋值,如果是基本数据类型,不能更改值,如果是复杂数据类型,不能更改地址值
3.声明 const时候必须要给定值
let、const、var 的区别
var | let | const |
函数级作用域 | 块级作用域 | 块级作用域 |
变量提升 | 不存在变量提升 | 不存在变量提升 |
值可更改 | 值可更改 | 值不可更改 |
脚踏实地 仰望星空!