一、var、let、const
1、var: 无论在代码的那个地方声明,都会提升到该函数的开头(变量提升);
栗子:1
2
3
4
5for(var i = 0; i < 10; i ++){
}
console.log(i); //10
2、let:用法类似于var,但不会变量提升,只在let命令所在的代码块内有效;
栗子:1
2
3
4
5for(let i = 0; i < 10; i ++){
}
console.log(i); //i is not defined
3、const: 声明常量,一旦声明,不可更改(不是变量的值不能改动,而是变量指向的那个内存地址不得改动,见例3),而且常量必须初始化赋值,和let一样,只在声明所在的块级作用域内有效;
栗子1:1
2
3
4
5// 更改值的情况
const PI = 3.1415;
console.log(PI);
PI = 3;
// Assignment to constant variable.
栗子2:1
2
3// 未赋值的情况
const PI
// Missing initializer in const declaration
栗子3:1
2
3
4
5
6// 对象声明
const foo = {};
foo.prop = 123;
console.log(foo.prop) // 123
foo = {} //Assignment to constant variable.
二、解构赋值
1、数组的解构赋值
- 从数组中提取值,按照对应位置,对变量赋值
1
let [a, b, c] = [1, 2, 3];
待续。。。