2.3 其他类型的解构赋值以及用途

本文深入解析字符串解构赋值的原理及应用,包括字符串长度获取、变量值交换、函数返回值处理等,同时介绍了如何使用解构赋值简化模块加载过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串解构赋值

  • 字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象
const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"

--------------------------------

//获取字符串的长度
let {length : len} = 'hello';
len // 5

用途

  1. 两个变量的值交换或者多个进行交换
let x = 1;
let y = 2;

[x, y] = [y, x];
  1. 函数返回多个值后不需要遍历赋值了
// 返回一个数组
function example() {
  return [1, 2, 3];
}
let [a, b, c] = example();
a //1
b //2
c //3

------------------------------------------

// 返回一个对象
function example() {
  return {
    foo: 1,
    bar: 2
  };
}
let { foo, bar } = example();
foo //1
bar //2
  1. 给函数传递数组或者函数
//传递对象用的最多,因为可以不受顺序限制
// 参数是一组有次序的值
function f([x, y, z]) { ... }
f([1, 2, 3]);

// 参数是一组无次序的值
function f({x, y, z}) { ... }
f({z: 3, y: 2, x: 1});
  1. 提取json值
let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let { id, status, data: number } = jsonData;

console.log(id, status, number);
// 42, "OK", [867, 5309]

遍历map解构

//先new一个map对象,给这个对象添加键值对
//for,fo循环得到里面的键值对
const map = new Map();
map.set('first', 'hello');
map.set('second', 'world');

for (let [key, value] of map) {
  console.log(key + " is " + value);
}
// first is hello
// second is world
// 获取键名
for (let [key] of map) {
  // ...
}

// 获取键值
for (let [,value] of map) {
  // ...
}

输入模块的指定方法

//加载模块时,往往需要指定输入哪些方法。解构赋值使得输入语句非常清晰。
const { SourceMapConsumer, SourceNode } = require("source-map");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值