一、let与const
**let:**声明的变量只在let命令所在的代码块内有效。与js(var)不同,let只能声明一次而var可以声明多次。
var a=1
var a=2
console.log(a) //a=2
let b=1
let b=2
console.log(b) //报错
**const:**声明一个只读变量,声明之后不允许改变。意味着,一旦声明必须初始化,否则会报错.
二、解构赋值
1.数组模型的解构
1.可忽略
let [a,,b]=[1,2,3]
console.log(a,b) //a=1 b=3
2.不完全解构
let [a = 1, b] = []; // a = 1, b = undefined
3.剩余运算符
let [a, ...b] = [1, 2, 3];
//a = 1
//b = [2, 3]
4.字符串
在数组的解构中,解构的目标若为可遍历对象,皆可进行解构赋值。
let [a,b,c,d]='我太难了'
console.log(a,b,c,d)// 我 太 难 了
2.对象模型的解构
1.基本
let {
foo, bar } = {
foo: 'aaa', bar: 'bbb' };
// foo = 'aaa'
// bar = 'bbb'
let {
baz : foo } = {
baz : 'ddd' };
// foo = 'ddd'
2.剩余运算符
let {
a, b, ...rest} = {
a: 10, b: 20, c: 30, d: 40};
// a = 10
// b = 20
// rest = {
c: 30, d: 40}
3.可嵌套可忽略
let obj = {
p: ['hello', {
y: 'world'}] };
let {
p: [x, {
y }] } = obj;
// x = 'hello'
// y