当前位置: 首页 > news >正文

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 关键字来定义和导入模块,使得代码更加清晰和可维护。

基本概念

  1. 模块:一个模块是一个文件,文件内部的变量和函数默认处于模块作用域内,不会污染全局作用域。也就是说,不同模块中有相同名字的变量和函数,它们也是独立的,不会互相冲突。如果你想在一个文件中同时引入不同文件的变量a,可以通过导入时重命名来避免命名冲突。
  2. 导出:使用 export 关键字将变量、函数或类导出,使其在其他模块中可用。
  3. 导入:使用 import 关键字从其他模块中导入变量、函数或类。

http://www.lryc.cn/news/492365.html

相关文章:

  • 2024年第15届蓝桥杯C/C++组蓝桥杯JAVA实现
  • MongoDB 和 Redis 是两种不同类型的数据库比较
  • CLIP-Adapter: Better Vision-Language Models with Feature Adapters 论文解读
  • Spring Boot 开发环境搭建详解
  • 网络安全中的数据科学如何重新定义安全实践?
  • 安装数据库客户端工具
  • GoogleTest做单元测试
  • 深入解析 EasyExcel 组件原理与应用
  • JSON数据转化为Excel及数据处理分析
  • (计算机网络)期末
  • 【AI技术赋能有限元分析应用实践】将FEniCS 软件安装在Ubuntu22.04
  • 快速识别模型:simple_ocr,部署教程
  • 【C/C++】数据库链接入门教程:从零开始的详细指南!MySQL集成与操作
  • C#中面试的常见问题005
  • 使用Redis生成全局唯一id
  • pnpm:包管理的新星,平替 npm 和 yarn
  • Android调起系统分享图片到其他应用
  • 详解Qt QBuffer
  • Python基础学习-11函数参数
  • GTK#框架让C# Winform程序跨平台运行
  • 在Kubernetes使用CronJob实现定时删除指定天数外的文件(我这里使用删除备份mysql数据库文件为例)
  • 使用 Elastic 收集 Windows 遥测数据:ETW Filebeat 输入简介
  • 力扣-位运算-4【算法学习day.44】
  • Stable Diffusion 3详解
  • c#异步编程(async/await)
  • TCP/IP学习笔记
  • 0000_vim自定义快捷键_alias
  • Spring Boot项目中,实体类是否需要实现Serializable接口
  • 打通工业通信壁垒实现Ethernetip转profinet网络互通
  • 数据结构_图的应用