es6数组赋值

本文介绍了ES6中数组的解构赋值,包括按索引、按位置、省略值、默认值以及展开运算符和剩余操作符的使用。通过实例展示了如何利用这些新特性简化代码并提高效率。
摘要由CSDN通过智能技术生成

1.数组的解构赋值

1

2

3

4

5

6

7

8

9

10

11

12

//以前给变量赋值 let a=1,b=2,c=3

//在es6里 可以这样

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

    // console.log(a,b,c)

let ary=['a','b']

// let [a,b,c]=ary

// console.log(a,b,c)// a b undefined

let arr=['aa','bb','cc','dd']

let [a,b,c]=arr

console.log(a,b,c)

2.嵌套赋值

1

2

3

//嵌套数组,其实是给对应的变量付得值

let [x,y,[s],[[f]]]=[1,2,[3],[[4]]]

console.log(x,y,s,f)

3.省略赋值

1

2

3

4

5

6

7

8

let ary=[1,2,3,4,5,6]//定义一个数组ary

let a=ary[0]//定义一个变量a,保存的是ary中的第一个值

let b=ary[ary.length-1]//定义一个变量b,保存的是ary中的第一个值

//es6的写法:x取到ary中的第1项,y是ary的第5项

let [x,,,,y]=ary

console.log(x,y)//1,5

4.不定参数的赋值

1

2

3

4

5

6

7

8

//比如现在有个数组【1,2,3,4,5】 现在我想让a=1 b=[2,3,4,5]

let [a,...b]=[1,2,3,4,5]

console.log(a,b)//1 ,[2,3,4,5]

//这就是不定参数赋值

let [,,x,,...y]=[1,2,3,4,5,6,7,8,9]

console.log(x,y)//3 ,[5,6,7,8,9]

5.默认值

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

let [f0,f1]=[1]

console.log(f0,f1)//1 ,undefined 现在f1没值 所以是undefined,

let [f2,f3=2]=[1]

console.log(f2,f3)//1 ,2 如果后边有值 就取后边的值 ,如果没有 就取2 相当于是默认值

//es6里边的运算是严格运算的,判断一个位置是否有值, 是用的===判断,

//如果数组中成员不严格等于undefined ,默认值不会生效

let [f=1]=[2] //null

console.log(f)//2 //null

function fn() {

console.log("haha")

}

let [x=fn(),y=0]=[1]

console.log(x,y)//1 ,0 //所以说只要变量在数组中的位置不是undefined,fn函数就不会执行

针对es6中...的用法总结:

用法1:展开运算符(spread operator),作用是和字面意思一样,就是把东西展开。可以用在arrayobject上都行,比如

1

2

3

4

5

6

let a = [1,2,3];

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

  

let obj = { a: 1, b: 2 };

let obj2 = { ...obj, c: 3 }; // { a:1, b:2, c:3 }

let obj3 = { ...obj, a: 3 }; // { a:3, b:2 }

用法2:剩余操作符(rest operator),是解构的一种,意思就是把剩余的东西放到一个array里面赋值给它。一般只针对array的解构

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

let a = [1,2,3];

let [b, ...c] = a;

b; // 1

c; // [2,3]

  

// 也可以

let a = [1,2,3];

let [b, ...[c,d,e]] = a;

b; // 1

c; // 2

d; // 3

e; // undefined

  

// 也可以

function test(a, ...rest){

  console.log(a); // 1

  console.log(rest); // [2,3]

}

  

test(1,2,3)

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值