浅谈ES6变量解构,即解构赋值

解构赋值语法是一种 JS表达式。ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。通过解构赋值, 可以将属性/值从对象/数组中取出,赋值给其他变量。

       在ES6解构赋值出现之前,我们需要为变量赋值的时候,只能直接指定值。
       比如:

let a = 1;
let b = 2;
let c = 3;
let d = 4;
let e = 5;

       But now,ES6 允许写成下面这样。

       从本质上来说,这种写法属于“模式匹配”,即只要等号两边的模式相同,等号左边的变量就会被赋予对应的值。

let [a, b, c, d, e] = [1, 2, 3, 4, 5];

       ES6的解构不仅可以用于数组,还可以用于对象,如下所示:

let { name, age } = { name: "张三", age: 18 };
console.log(name);
console.log(age);

结果:

注意:
       数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值:

let { name, age } = { name: "张三", age: 18 };
console.log(name); //张三
console.log(age);  // 18

// ===========================================

let { age } = { name: "张三", age: 18 };
console.log(age); // 18

       交换变量:在一个解构表达式中可以交换两个变量的值,不再需要第三个变量来交换。

var a = 1;
var b = 2;
[a, b] = [b, a];
console.log(a); // 2
console.log(b); // 1

       可以先给变量赋予一个默认值。当要提取的对象没有对应的属性时,变量就被赋予这个默认值。

var {a = 2, b = 3} = {a: 1};
console.log(a); // 1
// 此时要提取的对象没有对应的属性,便打印默认值
console.log(b); // 3
发布了25 篇原创文章 · 获赞 94 · 访问量 6792

猜你喜欢

转载自blog.csdn.net/weixin_42881768/article/details/104630896