js高级——扩展运算符

扩展运算符

...是扩展运算符。凡是有遍历器接口的数据都可以用扩展运算符展开参与运算。

用法:

类型转换:

字符串转数组:

let s = 'abc';
let arr = [...s];
console.log(arr);//['a','b','c']

字符串转数组:

    let s = 'abc';
    let arr = { ...s };
    console.log(arr);//{0: 'a', 1: 'b', 2: 'c'}    

字符串的解构和数组类似,没有名称只有索引值,因此转对象时,索引值就作为对象的值和名称。

数组转字符串:

    let arr = [1, 2, 3, 4, 5];
    let s = ''.concat(arr)

    console.log(s);//'1,2,3,4,5'

concat方法要求参数是字符串类型,因此,会将数组转化为字符串合并到空字符串中。

    let arr = [1, 2, 3, 4, 5];
    let s = ''.concat(...arr)

    console.log(s);//'12345'

扩展运算符会将数组中的每一项都作为concat的参数。

数组转对象:

    let arr = [1, 2, 3, 4, 5];
    let obj = { ...arr }

    console.log(obj);//{0: 1, 1: 2, 2: 3, 3: 4, 4: 5}

数组没有名称只有索引值,因此转对象时,索引值就作为对象的值的名称。

对象转字符串或数组

因为对象拥有不止一个遍历器接口,所以,不能直接使用扩展运算符转换。

连接

	let arr1 = [1,2,3];
	let arr2 = [4,5,6];
	let arr3 = [...arr1,...arr2];

	let obj1 = {a:1,b:2};
	let obj2 = {c:3,d:4};
	let obj3 = {...obj1,...obj2}

展开数组作为多个参数:

    let arr = [1, 2, 3, 5, 6576, 8, 8, 9]

    console.log(
      Math.max(...arr)
    )

结合解构赋值

	aa(1,2,3,4,5);

	function aa(a,...b){
       console.log(b)//[2,3,4,5]
    }

集合转数组


	let lis = document,querySelectAll('li');
	let arr = [...lis];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值