当前位置:首页 > JavaScript

js实现解构赋值

2026-04-07 15:20:28JavaScript

解构赋值的基本概念

解构赋值是JavaScript ES6引入的语法,允许从数组或对象中提取值并赋值给变量。这种语法简化了数据提取过程,使代码更简洁易读。

数组解构赋值

数组解构通过位置匹配进行赋值,左侧的变量名与右侧数组元素按顺序对应。

const arr = [1, 2, 3];
const [a, b, c] = arr;
console.log(a, b, c); // 输出: 1 2 3

跳过某些元素可以使用逗号占位:

const [x, , z] = [10, 20, 30];
console.log(x, z); // 输出: 10 30

对象解构赋值

对象解构通过属性名匹配,变量名需与对象属性名一致。

const obj = { name: 'Alice', age: 25 };
const { name, age } = obj;
console.log(name, age); // 输出: Alice 25

重命名变量可以使用冒号语法:

const { name: userName, age: userAge } = obj;
console.log(userName, userAge); // 输出: Alice 25

默认值设置

解构时可以设置默认值,当对应值为undefined时使用默认值。

const [m = 1, n = 2] = [100];
console.log(m, n); // 输出: 100 2

const { role = 'guest' } = {};
console.log(role); // 输出: guest

嵌套解构

支持嵌套数组或对象的解构:

const nestedArr = [1, [2, 3], 4];
const [p, [q, r], s] = nestedArr;
console.log(p, q, r, s); // 输出: 1 2 3 4

const nestedObj = { info: { id: 101, status: true } };
const { info: { id, status } } = nestedObj;
console.log(id, status); // 输出: 101 true

函数参数解构

直接在函数参数中使用解构:

function greet({ name, age }) {
  console.log(`Hello ${name}, you are ${age} years old.`);
}
greet({ name: 'Bob', age: 30 }); // 输出: Hello Bob, you are 30 years old.

剩余模式

使用...rest语法捕获剩余元素:

js实现解构赋值

const [first, ...others] = [1, 2, 3, 4];
console.log(first, others); // 输出: 1 [2, 3, 4]

const { title, ...details } = { title: 'Book', pages: 200, author: 'Author' };
console.log(title, details); // 输出: Book { pages: 200, author: 'Author' }

注意事项

  • 对象解构时若使用已声明变量,需用括号包裹整个表达式:({ a } = obj);
  • 解构null或undefined会抛出TypeError,需确保数据源存在
  • 解构赋值支持所有可迭代对象,包括Map、Set等

标签: 赋值js
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现点击显示和隐藏

js实现点击显示和隐藏

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