当前位置:首页 > JavaScript

js实现解构

2026-04-05 15:28:15JavaScript

解构赋值的基本概念

解构赋值是ES6引入的语法,允许从数组或对象中提取值,并直接赋值给变量。这种方式简化了变量声明和赋值的操作,使代码更简洁。

数组解构

数组解构通过位置匹配提取值。左侧的变量名与右侧数组的元素按顺序一一对应。

const arr = [1, 2, 3];
const [a, b, c] = arr; // a=1, b=2, c=3

跳过某些元素时,可用逗号占位:

const [x, , z] = [10, 20, 30]; // x=10, z=30

支持默认值,当解构的值为undefined时生效:

const [p = 5, q = 6] = [1]; // p=1, q=6

对象解构

对象解构通过属性名匹配提取值。变量名需与对象属性名一致,或通过别名指定。

基础用法:

js实现解构

const obj = { name: 'Alice', age: 25 };
const { name, age } = obj; // name='Alice', age=25

属性名与变量名不同时,使用别名:

const { name: userName, age: userAge } = obj; // userName='Alice'

默认值同样适用:

const { role = 'guest' } = {}; // role='guest'

嵌套解构

支持嵌套结构的解构,适用于多层数组或对象。

数组嵌套:

js实现解构

const nestedArr = [1, [2, 3], 4];
const [m, [n, o], p] = nestedArr; // m=1, n=2, o=3, p=4

对象嵌套:

const nestedObj = { info: { id: 1, status: 'active' } };
const { info: { id, status } } = nestedObj; // id=1, status='active'

函数参数解构

直接在函数参数中使用解构,简化传参逻辑。

数组参数:

function sum([a, b]) {
  return a + b;
}
sum([1, 2]); // 3

对象参数:

function greet({ name, age }) {
  return `Hello, ${name}! You are ${age} years old.`;
}
greet({ name: 'Bob', age: 30 }); // "Hello, Bob!"

注意事项

  • 解构失败时变量值为undefined
  • 右侧值为nullundefined会报错(无法解构)。
  • 默认值仅在解构值为undefined时生效。

通过合理使用解构赋值,可以显著提升代码的可读性和简洁性。

标签: js
分享给朋友:

相关文章

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…