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

ES6都有什么

现在继续上一篇文章的内容

6. 扩展运算符(Spread Operator)

扩展运算符 ... 可以用于展开数组或对象,常用于复制或合并数组/对象。

// 数组扩展
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2);  // [1, 2, 3, 4, 5]

// 对象扩展
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2);  // { a: 1, b: 2, c: 3 }

7. 类(Classes)

ES6 引入了基于原型的面向对象编程的类语法,简化了对象的创建和继承。

class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    greet() {
        console.log(`Hello, ${this.name}!`);
    }
}

const john = new Person('John', 30);
john.greet();  // Hello, John!

8. 模块(Modules)

ES6 引入了原生的模块系统,可以通过 importexport 来分割代码。

// module.js
export const PI = 3.14;
export function square(x) {
    return x * x;
}

// main.js
import { PI, square } from './module.js';
console.log(PI);  // 3.14
console.log(square(2));  // 4

9. Promise

Promise 对象用于表示一个异步操作的最终完成(或失败)及其结果值。它使得处理异步操作更加直观。

const promise = new Promise((resolve, reject) => {
    let success = true;
    if (success) {
        resolve('Operation was successful!');
    } else {
        reject('Operation failed!');
    }
});

promise.then(result => console.log(result)).catch(error => console.log(error));

10. Set 和 Map

  • Set:集合类型,存储唯一的值。
  • Map:映射类型,存储键值对。
// Set
const uniqueNumbers = new Set([1, 2, 2, 3, 4]);
console.log(uniqueNumbers);  // Set { 1, 2, 3, 4 }

// Map
const map = new Map();
map.set('name', 'Alice');
map.set('age', 25);
console.log(map.get('name'));  // Alice

11. 符号(Symbol)

Symbol 是一种新的基本数据类型,用于创建独一无二的值,通常用于对象属性的键。

const sym1 = Symbol('description');
const sym2 = Symbol('description');
console.log(sym1 === sym2);  // false

总结

ES6 引入了许多新的语言特性,极大地提高了 JavaScript 的开发体验和效率。你可以通过这些新特性让代码更加简洁、清晰,同时避免一些旧版本的 JavaScript 中常见的问题。


http://www.kler.cn/a/510892.html

相关文章:

  • Java基础(二)
  • 计算机网络 (49)网络安全问题概述
  • 常见的两种虚拟化技术比较:KVM与VMware
  • LabVIEW时域近场天线测试
  • 深度学习 Pytorch 张量(Tensor)的创建和常用方法
  • 如何在 Google Cloud Shell 中使用 Visual Studio Code (VS Code)?
  • K8S的探针说明和使用方式
  • RabbitMQ高级特性之发送方确认
  • 类和对象(3)——继承:extends关键字、super关键字、protected关键字、final关键字
  • SLAM 6 3Dto2D 的Pnp 和光束平移法
  • 医院挂号就诊系统设计与实现(代码+数据库+LW)
  • 红黑树封装map和set(c++版)
  • Vue3:当v-if和v-for同时使用时产生的问题和解决办法
  • AI Agent的总体概念:感知,记忆,规划,外部工具,执行
  • PTA乙级1001~1005【c++】
  • 线段树优化dp,abc389F - Rated Range
  • C++中.h文件中的实现方法
  • 云原生前端开发:打造现代化高性能的用户体验
  • Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正
  • C#如何获取电脑中的端口号和硬件信息
  • Observability:最大化可观察性 AI 助手体验的 5 大提示(prompts)
  • 游戏开发中常用的设计模式
  • 大数据中 TopK 问题的常用套路
  • 基于.NetCore+Vue的贫困地区儿童资助系统
  • GraphRAG: Auto Prompt Tuning 实践
  • 一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建