es6解构练习题含答案

数组解构

第一题

function getNum (){
	return 6;
}
let [a = getNum()]  = [,];    //a=?

第二题

var [x = 1,y=x]  = [undefined,2];
//x =?  y = ?
console.log(x,y);
var [x = 1,y=x] = [null,2];
//x =?  y = ?
console.log(x,y);

第三题

let [a,[b = 2,[c,d]],e] = [1,[undefined,[,4]],5];
//a= ?  b= ? c=?  d=?  e=?

参考答案:
1、 a = 6 设置默认值也可以是函数,但是只在使用时才会计算值

2、 x=1 y=2 x =null y=2 当遇到 undifined是默认值生效 null === undifined 这两个值严格比较是等于false所以第二个 声明默认值不生效,x值为null

3.、 // a=1
// b=2
// c=undefined
//d=4
//e=6

对象解构

第一题

let {a,b} = {a:'a',b:'b'}  
// a= ?   b = ?

第二题

let {name,age} = {name:'zhangsan'}
// name =?   b=?

第三题

let {floor} = Math;
console.log(floor(4.7));
//输入什么?

第四题

let {person:p,age:a} = {person:'zhangsan',age:18}
// p =?   a=?

第五题

let {user:[person,{age}]} = {user:['zhangsan',{age:18}]};
//person  = ?  age=?

第六题

		let obj = {
			userName: {
				name:'zhangsan'
			},
			introduce:{
				habies:['football','basketball'],
				talent:['guitar']
			},
			age:18,
			job:'programmer',
			num:14
		}
		let {userName:{name},introduce:{habies:[,b]},age:num} = obj;
		//name = ?
		// b=?
		//age = ?  
		//这里掌握了 说明对象解构掌握得还不错

第七题

		let arr= [
			{
				name:'user1',
				age:18,
			},
			{
				name:'user2',
				age:14,
			},
			{
				name:'user3',
				age:30,
			},
			{
				name:undefined,
				age:28,
			}
		]
		let {0:{age:age0},2:{name:name2},3:{name = 'zhangsan'}} = arr;
		console.log(age0);  // 18
		console.log(name2);  //user3
		console.log(name); //zhangsan
  1. a b
  2. zhangsan undefined
  3. 4
  4. p = ‘zhangsan’ a= 18 这里如果引用person报错 person是匹配模式而不是变量
  5. person = ‘zhangsan’ age=18
  6. name = ‘zhangsan’ b=basketball age ReferenceError: age is not defined

字符串解构

第一题

		let [a,b,c,d,e] = 'hello';
		console.log(a,b,c,d,e); // a =?  b=?  c=? d=?  e=?

第二题

		let str = 'hello world'
		let {length:len} = str;

第三题

		let str = 'hello world'
		let {foo:[a,b]} = {foo:str}
		console.log(a,b);  // a=?  b=?

第四题

		let str = 'hello world'
		let {foo:[a,b,length]} = {foo:str}
		console.log(a,b,length);  //a=h  b=e   length=?
  1. h e l l o
  2. 11
  3. h e
  4. undefined 因为此时解构字符串时length需要另外解

函数解构

第一题

function add([a,b,c]) {
	console.log(a+b+c); //?
}
add([1,2,3]);

第二题

		function add({x=1,y=3}) {
			console.log(x+y); //输出?
		} 
		add({x:5});  

第三题

		let arr = [
			[1,2],
			[1,undefined],
			[undefined,2]
		];
		function add([a =3,b =4]) {
			let sum = a+b;
			console.log(sum); //三次循环输入什么?
		}
		arr.map(item => {add(item)})
  1. 6
  2. 8
  3. 3 5 5
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值