ES6中对象的解构语法

1、对象属性的完全解构

(1)如果{ }里面的属性是对象的属性,解构出来是对应的属性值

	
	let obj = {
	    name: "zs",
	    age: 11,
	    email: "node.js@163.com"
	};
	let { name, age, email } = obj; 
	console.log(name, age, email); //zs 11 node.js@163.com
	//这个是完全解构。
	//相当于是let name=obj.name;let age = obj.age...
	

(2)如果{ }里面的属性不是对象的属性,直接改了对象的属性名,那么解构出来得到的是undefined

	let obj = {
	    name: "zs",
	    age: 11,
	    email: "node.js@163.com"
	};
	let { name1, age, email } = obj;
	console.log(name1, age, email); //undefined 11 'node.js@163.com'  
	

(3)如果想解构对象,但是解构时属性名跟本身对象的属性不一样,可以在解构时给这个属性起别名,如下name1就是给name起了个别名


	let obj = {
	    name: "zs",
	    age: 11,
	    email: "node.js@163.com"
	};
 	let { name: name1, age, email } = obj;
	console.log(name1, age, email); //zs 11 node.js@163.com
	

2、对象属性的部分解构

	
	let obj = {
		    name: "zs",
		    age: 11,
		    email: "node.js@163.com"
		};
	let { name } = obj;
	console.log(name); //zs
	

注:解构的时候可以留意下,如果用了let,是否有重复定义,比如下面的例子:


	//前面有let name,下面再出现let name,就会提示重定义的错误
	let name = "ls";
	let { name, age, email } = obj;
	console.log(name, age, email); //提示错误,name重复定义了
	

3、解构语法注意的几点:

解构的语法注意点:
1、let {name} = obj; 相当于 let name = obj.name
2、大括号里面的变量名最好和obj的属性名一致,如果不一致,则是undefined
3、大括号里面的变量名顺序可以调换
4、可以部分解构也可以完全解构
5、解构可能出现变量名已经被定义的错误。解决:取出属性之后重新命名。let {name:name2} = obj;然后控制台输出name2的值就是对象中name属性的值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值