js解构

前言

js中的解构,用起来非常舒服,实际上其也是js给我们做了转化的,实际上原理也非常的简单,系统自动给我们翻译了,相当于一个语法糖

下面我们看看我们常使用的对象、数组是怎么翻译的吧

对象的解构

对象的解构,世界实际上就是直接调用对应的属性

js 复制代码
//解构对象
const person = {
  name: "帅哥",
  age: 20,
};
const { name, age } = person;
//相当于
const name = person.name
const age = person.age

上面代码也可以看出为啥解构一个空会报错了吧

数组的解构

数组的解构,则是通过迭代器,依次给对应位置的,如果不是可迭代对象,那么可想而知会报错了

js 复制代码
//解构数组
const names = ["person1", "person2"];
const [p1, p2] = names
//相当于
const iter = names[Symbol.iterator]() //获取迭代器对象
const p1 = iter.next().value //迭代第一个对象
const p2 = iter.next().value //迭代第二个参数

解构别名

对象解构别名自然就相当于通过key取值,将结果赋值给别名了,如果没别名,那就是原来的默认名字了

js 复制代码
//解构对象
const person = {
  name: "帅哥",
  age: 20,
};
const { name: name1 } = person;
//相当于
const name1 = person.name

数组则对key没有额外要求,就不多介绍了

总结

解构成对象,相当于取对应的key,解构成数组,则是对被解构对象进行迭代取值

显而易见,如果对数组解构成对象,那么可能为undefined,对象解构成数组,则可能直接报错,因为这个对象可能不是可迭代对象

举例:如果将一个字符串解构呢,会出现什么结果?

答:字符串属于可迭代对象,那么解构成数组,则正常解构,如果解构成对象,除非是字符串的属性,例如:length,否则可能返回函数、undefined等

那么如果解析数字 number 呢,相信你已经有了答案,只要跟着要解构成的类型走,则可以明显推理出结果,不能正常迭代或者返回undefined

最后

就介绍到这里了,一个小知识,仍然趣味无穷

相关推荐
阳光是sunny12 小时前
LangGraph实战教程:一文搞懂图的状态(State)管理
前端·人工智能·后端
whyfail13 小时前
前端学 Spring Boot(5):从“你是谁”到“服务真的上线了”
前端·spring boot·后端
程序员黑豆13 小时前
鸿蒙开发:RelativeContainer相对布局组件实战——实现5个文本组件对齐
前端·华为·harmonyos
环境栈笔记13 小时前
高性价比指纹浏览器推荐与选型:如何对照价格和实际可用功能筛选候选
前端·人工智能·后端·自动化
hyf32663314 小时前
泛程序哪有想象中难!小白跟着走一遍就全懂
前端·爬虫·搜索引擎·seo·蜘蛛池
码农学院14 小时前
React公众号开发:母婴用品会员积分体系技术方案
前端·react.js·前端框架
路光.14 小时前
Vue2升级Vue3处理原 UMD/CommonJS 打包文件,不是标准 ESM
前端·javascript·vue.js·vue3
黄华SJ520it14 小时前
门店预约系统开发:提升服务行业数字化转型
前端·数据库·系统开发
一只月月鸟呀15 小时前
移动端tap与click的区别 && 点透事件
开发语言·前端·javascript
雪隐15 小时前
AI股票小助手10-我用代码管住自己的手:一个普通人的市场观察笔记
前端·人工智能·后端