ES6新特性:变量的解构赋值

news/2024/7/7 18:45:04

文章目录

  • 1 数组的解构赋值
    • 1.1 基本用法
    • 1.2 交换变量的值
    • 1.3 注意事项
  • 2 对象的解构赋值
    • 2.1 基本用法
    • 2.2 属性重命名
    • 2.3 注意事项

ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。

ES6的变量解构赋值是指通过解构的方式将数组或对象中的值赋值给变量。

1 数组的解构赋值

1.1 基本用法

数组的解构赋值可以通过以下语法实现:

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

在上述语法中,我们将数组 arr 中的值通过方括号的方式进行解构,并将值分别赋值给变量 a, bc

1.2 交换变量的值

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

1.3 注意事项

  • 变量与数组元素从左向右一一对应。

    let arr = [1, 2, 3];
    let [b, c] = arr;
    console.log(b); // 1
    console.log(c); // 2
    
  • 当我们需要省略一些元素时,可以使用逗号来跳过这些元素

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

2 对象的解构赋值

2.1 基本用法

对象的解构赋值可以通过以下语法实现:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES6新特性: 解构赋值</title>
</head>

<body>
    <script>
        let obj = {
            name: 'Alice',
            age: 20,
            func: function () {
                console.log(name + '今年' + age + '岁')
            }
        };
        let { name, age, func } = obj;
        console.log(name); // 'Alice'
        console.log(age); // 20
        console.log(func);
    </script>
</body>

</html>

在上述代码中,我们将对象 obj 中的属性通过花括号的方式进行解构,并将属性值分别赋值给变量 nameagefunc。控制台输出如下:

在这里插入图片描述

2.2 属性重命名

我们也可以在对象解构赋值时,将属性进行重命名,语法格式为:成员名: 新名

在下面代码中,name: n 表示将 name 属性重命名为 nage: a 表示将 age 属性重命名为 a

示例:

let obj = {
    name: 'Alice',
    age: 20,
    func: function () {
        console.log(name + '今年' + age + '岁')
    }
};
let { name: n, age: a, func: f } = obj;
console.log(n); // 'Alice'
console.log(a); // 20
console.log(f);

得到同样的结果👇

在这里插入图片描述

2.3 注意事项

  • 花括号内的变量名要与对象的成员变量或成员方法名称一致
  • 花括号内的变量顺序可以任意
  • 花括号内的变量数量可以少于对象的成员数量,但是当花括号内的变量调用了其他成员的时候,需要同时在花括号内包含调用的成员。

示例:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES6新特性: 解构赋值</title>
</head>

<body>

    <script>
        let obj = {
            name: 'Alice',
            age: 20,
            func1: function () {
                console.log(name + '今年' + age + '岁')
            },
            func2: function () {
                console.log('我是func2')
            }
        };
        
        let { name, func1, age } = obj;
        func1();

        let { func2 } = obj;
        func2();
    </script>

</body>

</html>

输出:

Alice今年20岁
我是func2

点击此处,获取关于ES6变量解构赋值的更多内容。


http://lihuaxi.xjx100.cn/news/1723444.html

相关文章

stable-diffusion-webui环境部署

stable-diffusion-webui环境部署 1. 环境创建2. 安装依赖库3.下载底模4.运行代码5. 报错信息报错1报错2 1. 环境创建 创建虚拟环境 conda create -n env_stable python3.10.0进入虚拟环境 conda activate env_stableclone源码 git clone https://github.com/AUTOMATIC1111/stab…

Zabbix监控IP地址是否畅通

一、fping安装 1.下载fping安装包 wget http://www.fping.org/dist/fping-4.0.tar.gz下载失败的&#xff0c;请看 https://download.csdn.net/download/qq_45748758/88477979 资源包已上传&#xff0c;免费 2.解压安装包 tar -xf fping-4.0.tar.gz3.安装 cd fping-4.0 ./c…

SSL证书对于SEO优化的重要性

在当今时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;对于企业和网站来说是至关重要的。而SSL证书在SEO优化中起着重要的作用。SSL证书是一种用于加密数据传输的安全协议&#xff0c;它为网站提供了安全连接&#xff0c;使用户可以放心地与网站进行交互。 首先&…

pk答题小程序怎么做?功能有哪些?为您揭秘!

“微信答题小程序&#xff08;仿头脑王者源码&#xff09;在线教育考试pk答题小程序”是一款专业性的答题小程序&#xff08;软著登记号&#xff1a;4078210号&#xff09;&#xff0c;主要功能有&#xff1a;个人每日答题、邀请好友一对一PK答题、排位升级PK答题、专题1V1pk答…

按键LED测试【FPGA】

按钮&#xff1a; 按钮是区分输入输出的&#xff0c; LED配置成输入&#xff0c;是不会亮的。 //timescale 1s/1ns // 【】是预编译&#xff0c;类似C语言的#include // 这是FPGA原语 //晶振时钟 1ns//类型声明 module LED //跟PLC的FB功能块一样&#xff0c;使用前需要实…

【Leetcode】200. 岛屿数量

给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网格的四条边…

[UDS] --- WriteDataByIdentifier 0x2E

1 0x2E功能描述 根据ISO14119-1标准中所述&#xff0c;诊断服务2E主要用于Client向Server(ECU)通过DID的方式写入相关的数据。 2 0x2E应用场景 一般而言&#xff0c;对于2E诊断服务&#xff0c;主要应用场景为以下场合&#xff1a; 在整车下线的过程中写入相关配置信息&…

Java生成Jar包方法

1. 设置->项目结构 2. Artifacts->JAR->From modules… 3. 打开菜单栏 4. Build Artifacts… 5. Build或Rebuild (完)