前端基础笔记——es6的解构赋值(老虎集团笔试)

本文深入探讨了JavaScript中解构赋值的机制,包括如何通过解构赋值进行变量声明与赋值,以及在不同场景下解构赋值的行为表现。文章详细解释了当目标变量未声明时,解构赋值如何隐式声明变量;同时,阐述了解构赋值过程中属性名与变量名映射的规则,以及当属性名与变量名冲突时的处理方式。
摘要由CSDN通过智能技术生成
			// 1.首先赋值空对象
			// let {bar:foo,bar='foo'}={};
			// 首先 {bar:foo}  由于不存在该变量foo,所以只是相当于全局声明了
			// console.log(foo,bar);// undefined,'foo'
			// 所以foo变量没有被赋值,所以就是undefined,而bar变量被赋值了
			
			// 2.如果是正常的结构
			// 2.1虽然{}里面有两个bar属性,但是不能声明两次,所以会报错
			// 如果let {bar:foo,bar:3};那么会报错
			
			// 2.2此外,解构赋值的时候,赋值的是属性对象的变量,所以bar:'bar'赋值给的是bar属性对象的变量foo
			// 也因为如此,foo='bar',然后bar属性也是等于foo变量,也就是bar
			// let { foo: baz } = { foo: "aaa", bar: "bbb"};
			// console.log(baz);//aaa 
			// console.log(foo);//foo in not defined
			
			// 3.所以题目就是
			// 3.1 不声明bar变量
			// let {bar:foo}={bar:'bar',foo:'foo'}
			// console.log(foo);// bar
			// 如果是这样的话直接打印bar变量就会出现
			// console.log(bar);// bar in not defined
			
			// 3.2只声明,不赋值(变量bar的值等于属性bar的值)
			// let {bar:foo,bar}={bar:'bar',foo:'foo'}
			// console.log(foo,bar);//bar bar 
			
			// 3.3 赋值(变量bar的值等于属性bar的值)
			let {bar:foo,bar='f'}={bar:'bar',foo:'foo'}
			console.log(foo,bar);//bar bar 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值