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

最后

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

相关推荐
程序员黑豆6 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
To_OC7 小时前
踩了个 TS 的坑之后,我终于把 type 和 interface 掰明白了
前端·react.js·typescript
GreenTea7 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
浮生望8 小时前
前端API工程化:用 Mock 数据与 Axios 配置实现独立于后端的并行开发
前端
万少8 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
波波0078 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
Brown.alexis9 小时前
es6知识点1-自备使用
前端·ecmascript·es6
小爬的老粉丝10 小时前
JavaScript 纯前端预览 WPS:先识别容器,再路由解析器
前端·javascript·wps
计算机魔术师10 小时前
新兴多智能体系统的模式与问题
前端
用户0595401744611 小时前
AI Agent 上下文污染踩坑实录:用 pytest + Redis 揪出 3 类记忆串号 bug,排查 6 小时
前端·css