JavaScript进阶(四)---js解构

目录

一.定义:

二.类型:

1.数组解构:

1.1变量和值不匹配的情况

1.2多维数组

2.对象解构

3.对象数组解构

4.函数参数解构

5.扩展运算符



一.定义:

JavaScript 中的解构(Destructuring)是一种语法糖,它允许我们从数组或对象中提取数据,并将这些数据赋值给新的变量。解构使得代码更加简洁易读,特别是在处理复杂的数据结构时。

二.类型:

1.数组解构:

let [a, b, c] = [1, 2, 3];
    console.log(a); // 1
    console.log(b); // 2
    console.log(c); // 3

  // 数组解构
    // 1. 基本语法
    const [a, b, c] = [1, 2, 3]
    console.log(a)
    console.log(b)
    console.log(c)

    // 2. 典型的使用场景  交换2个变量的值
    let x = 1
    let y = 2;
    [y, x] = [x, y]
    console.log(x, y);

    // 3. js 2个特殊情况需要加分号
    // 3.1 如果是小括号开头的则需要加分号
    (function () { })();
    (function () { })();
    // 3.2 如果是中括号开头的则需要加分号

1.1变量和值不匹配的情况

// 1. 变量多,值少的情况
    // const [a, b, c, d] = ['小米', '华为', '苹果']
    // console.log(a)
    // console.log(b)
    // console.log(c)
    // console.log(d) // undefined

    // 2. 防止undefined传值,可以设置默认值
    // const [a, b, c, d = '三星'] = ['小米', '华为', '苹果']
    // console.log(a)
    // console.log(b)
    // console.log(c)
    // console.log(d)

    // 3. 变量少,值多的情况
    // const [a, b] = ['小米', '华为', '苹果']
    // console.log(a)
    // console.log(b)

    // 4. 利用剩余参数解决变量少值多的情况
    // const [a, ...b] = ['小米', '华为', '苹果']
    // console.log(a)
    // console.log(b)

    // 5. 按需导入,忽略某些值
    const [a, , c, d] = ['小米', '华为', '苹果', 'vivo']
    console.log(a)
    console.log(c)
    console.log(d)

1.2多维数组

 

2.对象解构

对象解构允许我们通过对象的属性来获取值,并将其赋值给变量。基本语法如下:

let { name, age } = { name: 'Alice', age: 25 };
console.log(name); // Alice
console.log(age);  // 25

对象解构时,属性名必须与变量名一致,或者使用别名:

let { name: userName, age: userAge } = { name: 'Bob', age: 30 };
console.log(userName); // Bob
console.log(userAge);  // 30

如果对象中没有对应的属性,变量将被赋值为 undefined。

3.对象数组解构

  // 3. 对象数组解构
    const arr = [
      {
        username: '小明',
        age: 18
      }
    ]

    const [{ username: uname, age }] = arr
    console.log(uname)
    console.log(age)

4.函数参数解构

解构也可以用于函数参数,使得函数调用更加简洁:

function greet({ name, age }) {
  console.log(`Hello, ${name}! You are ${age} years old.`);
}

greet({ name: 'Dave', age: 40 });
// Hello, Dave! You are 40 years old.

5.扩展运算符

与解构相对的是扩展运算符(spread operator),它允许将数组或对象的元素展开到一个新的数组或对象中:

let first = [1, 2];
let second = [3, 4];
let combined = [...first, ...second];
console.log(combined); // [1, 2, 3, 4]

let { name, ...rest } = { name: 'Eve', age: 28, city: 'Paris' };
console.log(name);    // Eve
console.log(rest);    // { age: 28, city: 'Paris' }

  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值