ES6 解构赋值以及…运算符

本文介绍了ES6的解构赋值特性,包括数组解构的可嵌套、忽略和不完全解构,以及对象解构的属性匹配和默认值。此外,还详细阐述了剩余运算符(扩展运算符)的应用,如参数收集和在数组中的使用。解构赋值在交换变量值、处理函数返回的多个值等方面展现出强大功能。
摘要由CSDN通过智能技术生成

解构赋值

ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)

数组解构赋值
	let [a, b, c] = [1, 2, 3];// a = 1   b = 2  c = 3

可嵌套

	let [a, [[b], c]] = [1, [[2], 3]];// a = 1   b = 2  c = 3

可忽略

	let [a, , b] = [1, 2, 3];// a = 1  b = 3

不完全解构

	let [a = 1, b] = []; // a = 1, b = undefined

剩余运算符

	let [a, ...b] = [1, 2, 3];//a = 1  b = [2, 3]

字符串等
在数组的解构中,解构的目标若为可遍历对象,皆可进行解构赋值。可遍历对象即实现 Iterator 接口的数据。

	let [a, b, c, d, e] = 'hello';// a = 'h'  b = 'e'  c = 'l'  d = 'l'  e = 'o'

解构默认值
当解构模式有匹配结果,且匹配结果是 undefined 时,会触发默认值作为返回结果。

	let [a = 2] = [undefined]; // a = 2
	let {length} = [1,2,3,4,10]; //length = 5
对象解构赋值

对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,
变量的取值由它的位置决定;而对象的属性没有次序,
变量必须与属性同名,才能取到正确的值。

	let { a, b} = { a: 'aaa', b: 'bbb' };// a= 'aaa'  b= 'bbb'
	let { c: d} = { c: 'ddd' }; // d= 'ddd'

对象的解构也可以指定默认值


	var {x = 3} = {}; //x =3
	var {x, y = 5} = {x: 1}; //x = 1, y= 5

可嵌套可忽略

应用
交换变量的值

	let x = 1;
	let y = 2;
	[x, y] = [y, x];

从函数返回多个值
函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。
有了解构赋值,取出这些值就非常方便。

//返回一个数组
	function example() {
	  return [1, 2, 3];
	}
	let [a, b, c] = example();
 
	// 返回一个对象
	function example() {
	  return {
	    foo: 1,
	    bar: 2
	  };
	}
	let { foo, bar } = example();
…运算符(扩展运算符)

起到参数收集作用

  1. 收集符只能出现一次
  2. 一个函数,剩余参数收集只能在最后一个形参
	function sum(a,b,...arg){   //收集参数只能放在最后一个参数
		console.log(a,b,arg)
    }
    sum(1,2,3,4,5)

运用在数组中,函数中

	let arr = [1,2,3];
	console.log(...arr); //1 2 3
	let arr2 = [4,5,6];
	let newArr = [...arr,...arr2];
	console.log(newArr) //[1,2,3,4,5,6]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值