JavaScript核心语法(5)
这篇文章讲一下ES6中的核心语法:扩展运算符和模块化。
目录
1.扩展运算符
数组中的扩展运算符
基本用法
合并数组
对象中的扩展运算符
基本用法
合并对象
与解构赋值结合使用
数组解构中的剩余元素
对象解构中的剩余属性
2.模块化
基本概念
1.扩展运算符
扩展运算符是 ES6 引入的一种语法,使用三个点(...
)表示。它可以在数组和对象中展开元素或属性,提供了一种简洁的方式来操作数据结构。
数组中的扩展运算符
扩展运算符可以用来将一个数组展开成另一个数组的元素。
基本用法
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5, 6];
console.log(arr2); // 输出 [1, 2, 3, 4, 5, 6]
合并数组
你可以使用扩展运算符合并多个数组:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const merged = [...arr1, ...arr2];
console.log(merged); // 输出 [1, 2, 3, 4, 5, 6]
对象中的扩展运算符
在对象字面量中,扩展运算符可以用来展开对象的属性。
基本用法
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2); // 输出 { a: 1, b: 2, c: 3 }
合并对象
你可以使用扩展运算符合并多个对象:
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const merged = { ...obj1, ...obj2 };
console.log(merged); // 输出 { a: 1, b: 3, c: 4 }
注意:在对象合并中,如果有重复的属性名,后面的属性会覆盖前面的属性。
与解构赋值结合使用
扩展运算符可以与解构赋值结合使用,以提取对象或数组中的部分元素或属性。
数组解构中的剩余元素
const [first, ...rest] = [1, 2, 3, 4];
console.log(first); // 输出 1
console.log(rest); // 输出 [2, 3, 4]
对象解构中的剩余属性
const { a, ...others } = { a: 1, b: 2, c: 3 };
console.log(a); // 输出 1
console.log(others); // 输出 { b: 2, c: 3 }
2.模块化
ES6 模块化是指,通过使用 import
和 export
关键字来定义和导入模块,使得代码更加清晰和可维护。
基本概念
- 模块:一个模块是一个文件,文件内部的变量和函数默认处于模块作用域内,不会污染全局作用域。也就是说,不同模块中有相同名字的变量和函数,它们也是独立的,不会互相冲突。如果你想在一个文件中同时引入不同文件的变量a,可以通过导入时重命名来避免命名冲突。
- 导出:使用
export
关键字将变量、函数或类导出,使其在其他模块中可用。 - 导入:使用
import
关键字从其他模块中导入变量、函数或类。
相关文章:

JavaScript核心语法(5)
这篇文章讲一下ES6中的核心语法:扩展运算符和模块化。 目录 1.扩展运算符 数组中的扩展运算符 基本用法 合并数组 对象中的扩展运算符 基本用法 合并对象 与解构赋值结合使用 数组解构中的剩余元素 对象解构中的剩余属性 2.模块化 基本概念 1.扩展运算符…...

2024年第15届蓝桥杯C/C++组蓝桥杯JAVA实现
目录 第一题握手,这个直接从49累加到7即可,没啥难度,后面7个不握手就好了,没啥讲的,(然后第二个题填空好难,嘻嘻不会) 第三题.好数编辑 第四题0R格式 宝石组合 数字接龙 最后一题:拔河 第…...
MongoDB 和 Redis 是两种不同类型的数据库比较
MongoDB 和 Redis 是两种不同类型的数据库,设计目标和应用场景各有侧重,因此性能对比需要结合具体需求场景进行评估。 1. MongoDB 性能特点 类型: 文档型数据库(NoSQL)。适合场景: 复杂查询:支持丰富的查询语法和索引…...

CLIP-Adapter: Better Vision-Language Models with Feature Adapters 论文解读
abstract 大规模对比视觉-语言预训练在视觉表示学习方面取得了显著进展。与传统的通过固定一组离散标签训练的视觉系统不同,(Radford et al., 2021) 引入了一种新范式,该范式在开放词汇环境中直接学习将图像与原始文本对齐。在下游任务中,通…...
Spring Boot 开发环境搭建详解
下面安装spring boot的详细步骤,涵盖了从安装 JDK 和 Maven 到创建和运行一个 Spring Boot 项目的全过程。 文章目录 1. 安装 JDK步骤 1.1:下载 JDK步骤 1.2:安装 JDK步骤 1.3:配置环境变量 2. 安装 Maven步骤 2.1:下载…...

网络安全中的数据科学如何重新定义安全实践?
组织每天处理大量数据,这些数据由各个团队和部门管理。这使得全面了解潜在威胁变得非常困难,常常导致疏忽。以前,公司依靠 FUD 方法(恐惧、不确定性和怀疑)来识别潜在攻击。然而,将数据科学集成到网络安全中…...

安装数据库客户端工具
如果没有勾选下面的,可以运行下面的两个命令 红框为自带数据库 新建数据库 右键运行mysql文件,找到数据库,并刷新...

GoogleTest做单元测试
目录 环境准备GoogleTest 环境准备 git clone https://github.com/google/googletest.git说cmkae版本过低了,解决方法 进到googletest中 cmake CMakeLists.txt make sudo make installls /usr/local/lib存在以下文件说明安装成功 中间出了个问题就是,…...

深入解析 EasyExcel 组件原理与应用
✨深入解析 EasyExcel 组件原理与应用✨ 官方:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 在日常的 Java 开发工作中,处理 Excel 文件的导入导出是极为常见的需求。 今天,咱们就一起来深入了解一款非常实用的操作 Exce…...
JSON数据转化为Excel及数据处理分析
在现代数据处理中,JSON(JavaScript Object Notation)因其轻量级和易于人阅读的特点而被广泛使用。然而,有时我们需要将这些JSON数据转化为Excel格式以便于进一步的分析和处理。本文将介绍如何将JSON数据转化为Excel文件࿰…...

(计算机网络)期末
计算机网络概述 物理层 信源就是发送方 信宿就是接收方 串行通信--一次只发一个单位的数据(串行输入) 并行通信--一次可以传输多个单位的数据 光纤--利用光的反射进行传输 传输之前,要对信源进行一个编码,收到信息之后要进行一个…...
【AI技术赋能有限元分析应用实践】将FEniCS 软件安装在Ubuntu22.04
FEniCS 完整介绍 FEniCS 是一个开源的计算工具包,专门用于解决偏微分方程(PDE)的建模和求解。它以灵活的数学抽象和高效的计算性能著称,可以让用户使用高层次的数学表达来定义问题,而无需关注底层的数值实现细节。 具体来看,FEniCS 是一个开源的高性能计算工具包,用于…...

快速识别模型:simple_ocr,部署教程
快速识别图片中的英文、标点符号、数学符号、Emoji, 模型会输出图片中文字行的坐标位置、最低得分、识别结果。当前服务用到的模型:检测模型、数字识别、英文符号识别。 一、部署流程 1.更新基础环境 apt update2.安装miniconda wget https://repo.anaconda.com/…...

【C/C++】数据库链接入门教程:从零开始的详细指南!MySQL集成与操作
文章目录 环境配置:搭建开发环境的基础步骤2.1 安装MySQL数据库2.2 配置C/C开发环境2.3 下载并安装MySQL Connector/C 基础操作:实现C/C与MySQL的基本交互3.1 建立数据库连接3.2 执行SQL语句3.3 处理查询结果 进阶技巧:提升数据库操作效率与安…...
C#中面试的常见问题005
1、重载和重写 重载(Overloading) 重载是指在同一个类中定义多个同名方法,但参数列表不同(参数的数量、类型或顺序不同)。返回类型可以相同也可以不同。重载方法允许你根据传入的参数类型和数量来调用不同的方法。 …...
使用Redis生成全局唯一id
为了生成一个符合要求的分布式全局ID,我们可以使用 StringRedisTemplate 来实现。这个ID由三部分组成: 符号位(1 bit):始终为0,表示正数。时间戳(31 bit):表示从某个起始…...

pnpm:包管理的新星,平替 npm 和 yarn
pnpm,一个老牌的 node.js 包管理器,支持 npm 的所有功能,完全足以用来替代 npm。它采用全局存储,每个项目内部使用了硬链接,所以很省空间,安装速度快。 本文介绍下 pnpm 的基本概念,安装、…...

Android调起系统分享图片到其他应用
Android调起系统分享图片到其他应用 有时候分享不想接第三方的,其实如果你的分享要求不是很高,调系统的分享也是可以的。 一、思路: 用intent.action Intent.ACTION_SEND 二、效果图: 三、关键代码: //这个是分享…...
详解Qt QBuffer
文章目录 **QBuffer 的详解****前言****QBuffer 是什么?****QBuffer 的主要用途****构造函数****主要成员函数详解****1. open()****原型:****作用:****参数:****返回值:****示例代码:** **2. write()****原…...

Python基础学习-11函数参数
1、"值传递” 和“引用传递” 1)不可变的参数通过“值传递”。比如整数、字符串等 2)可变的参数通过“引用参数”。比如列表、字典。 3)避免可变参数的修改 4)内存模型简介 2、函数参数类型 1) def func() #无参…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...