可以很明显的观察到,在对象解构中,外部定义的变量由大括号包裹、变量必须与属性同名、对应的变量和属性没有次序、变量无同名对应属性的相当于未定义(undefined)。
那么对象解构有什么好处呢?在我看来,对象解构能够很便捷的将现有对象的内置方法提取出来,还能灵活的获取特定的值,比如
let { log, sin, cos } = Math;
将一个库中的属性通过解构的方式取出来,只取当前需要的属性,可以节省很多的空间。
function getStyle(w, defaultStyle) {
let width = w || ‘300px’;
// someCode
return { width, …defaultStyle };
}
const defaultStyle = { height: ‘100px’, display: ‘block’ }
const style = getStyle(‘200px’, defaultStyle);
const { width } = getStyle(‘200px’, defaultStyle);
console.log(style); // { width: ‘200px’, height: ‘100px’, display: ‘block’ }
console.log(width); // 200px
这是一个很有意思的用法,我的函数接受一个 width 和 defaultStyle (这里甚至可以用 arguments 会更好,不过为了简便演示,这个函数也不需要具体的意义,所以就没写出来),使用了对象解构的方式去返回一个对象,我可以直接使用 style 去获取,也可以通过对象解构的方式只取其中的一个。
这样做的好处是更加的灵活,这个函数可能是一个公共函数用于生产某特定种类的数据,但是事实上你的各个组件(或者是模块)是需要这么多数据,只需要部分特定数据的,这样你就可以使用对象解构专门的去取出来,既灵活操作,又节省内存空间。
值得注意的是第四行…defaultStyle,这种写法叫做扩展运算符,会将一个数组或者对象转为用逗号分隔的参数序列。
/**
- 对象扩展
**/
const info = { name: “jobsofferings”, age: 21, email: ‘222222’ };
const infoChanged1 = { …info, email: ‘3’ };
const infoChanged2 = { email: ‘3’, …info };
console.log(infoChanged1); // { name: ‘jobsofferings’, age: 21, email: ‘3’ }
console.log(infoChanged2); // { email: ‘222222’, name: ‘jobsofferings’, age: 21 }
/**
- 额外:数组扩展
**/
console.log(…[1, 2, 3]) // 1 2 3
console.log(1, …[2, 3, 4], 5) // 1 2 3 4 5
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。


既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后的最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体免费获取




外链图片转存中…(img-j6IlXtKg-1713483996231)]
[外链图片转存中…(img-ZGpntZ7K-1713483996231)]
[外链图片转存中…(img-FIaTVYwF-1713483996231)]

1354




被折叠的 条评论
为什么被折叠?



