数组解构赋值

解构:

什么是解构?
==> 解构,就是将数组和对象中的值分解并赋值给全局变量 。
这里面有很多,我们一个一个来看

1.数组解构:

(1) 数组解构: [变量1,变量2]=数组

举个例子 : 
	var [x,y]=[1,2]
		console.log(x,y)
输出一下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b5037a8c06e427eb5b08552ab68b0b7.png#pic_center)

		我们发现,在解构的时候,有时会出现一下情况 :
		数组在解构的时候,两侧时数量不对等。左侧多右侧少,或者 左侧少右侧多
		// 我们需要记住,为赋值的变量即为:undefind
		比如下面的这个  左侧有 x 和 y 两个变量 , 但是右侧数组却只有一个内容,由于数组解析是按照顺序一 一进行赋值的,所以,首先会给 x 赋值,再给 y 赋值,... 然后一致下去 。但是在这里由于 y 没有赋值 所以 y 即为 undefind 
	var [x,y]=[1];
	console。log(x,y)// 1 undefined

刚才说的时左侧而右侧少,那要是 相反过来。左侧少而右侧多又是什么样子?
这种情况下,就要放弃多余的值

	var [x]=[1,2]
	console.log(x) // 1

结果发现,x 被赋值1,那数值2 就不要了,舍弃

(2)定义变量的默认初始值

还是那个例子。如果说,后面没有解构赋值给前面的y,y的默认值就是0
当后面有解析赋值给 y 的话,那就把初始值覆盖

	var [x,y=0]=[1];// 1  0
	 // 如果后面有值,我们会将值赋予y
	 var [x,y=0]=[1,5];// 1	 5

我们知道,ES6中函数的参数允许赋值默认值

	function fn(a=5){
		console.log(a);
	}
	fn();//如果没有给入参数,a 即是默认 5
	fn(7);//如果给了,那就会把 初始值给覆盖,所以 a 就是 7

在这里,我们还需要注意一点 :
如果函数的形参是 function fn([a,b=5]=[0,6]){} , 那当我们调用函数 fn()的时候,如果没有传递参数,[0,6] 才会赋值给 [a,b=5],反之,如果在调用函数的时候,传递了实参,那[0,6] 是不会赋值给前面的

 		function fn([a,b=5]=[0,6]){
            console.log(a,b);
        }
		fn();// 0  6
		fn([3])// 3  5
		fn([6,0])// 6  0

最后再说一个 ,变量交换 直接上代码

		var x=1;
        var y=2;
        [x,y]=[y,x];
        console.log(x,y);// 2   1
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值