ES6之数组、对象结构详解

1、数组结构

 <script> 
    window.onload = function(){
		var a = 1;
		var b = 2;
		var c = 3;
		var a = 1,b=2,b=3;
		var [a,b,c] = [1,2,3];   //模式匹配

		var [a,b,c] = [1,,3];  //b=undefined
		var [a,b,c] = [1,[1,2],'a']; 
		//var a = 1;
		//var b = [1,2];
		//var c = 'a';
		var [a,b,c] = [1,{name:'abc'},'a']; 

		//默认值  ===
		let [x=4,y,z] = [1,2,3];
		//x = 1 || 4
		let [x=4,y,z] = [,2,3];   //x=4
		let [x=1,y=2,z=3] = [5];   //5,2,3
		let [x,y='b'] = ['a'];    //a,b
		//注意   成员等于undefined   默认值会生效
		let [x =1] =[undefined];  //x=1
		let [x,y='b'] = ['a',undefined];    //a,b

		let [x =1] =[null];   //x = null
		//默认值  函数
		function f() {
			return 'abc'
		};
		let [x=f()] =[1];   //获取的顺序  f()没有执行  1
		let [x=f()] =[];   //abc
		let [x=f()] =[undefined];   //abc

		 //坑
		 let [x=1,y=x] = [];  //x=1;y=1;
		 let [x=1,y=x] = [2];  //x=2;y=2;
		 let [x=1,y=x] = [1,2];  //x=1;y=2;
		 let [x=y,y=1] = [];  //error   y并没有声明


	}
  </script>

2、对象结构

  <script> 
    window.onload = function(){
		//解构不仅仅用于数组,还用于对象
		var obj = {
			name:'abc',
			age:18
		};
		let name = obj.name;
		let age = obj.age;
		let {name,age} = {name:'abc',age:18};
		//对象解构与数组解构的不同:
		//数组解构是按次序排列的,变量的取值由位置来决定
		//对象解构没有次序,变量必须与属性同名
		let {type,age} = {name:'abc',age:18};  //type  undefined   type没有匹配到属性同名
		let {x,y} = {y:2,x:1}; //x=1,y=2
		let {x:name,y} = {y:2,x:1}; //x是没有的,  name = 1;
		//X是匹配模式   name才是变量

		let {name:n,age:a} = {name:'abc',age:18};  //n='abc'   a = 18

	}
  </script>

3、字符串解构
4、函数解构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值