即将发布的ES2024:JS迎来重大突破和新方法公布

AI 概述
Object.groupBy()Promise.withResolversRecords 和 TuplesTemporal装饰器(Decorators)结语 ECMAScript 2024(ES15) 即将发布(2024 年 6 月),新的版本带来了非常多全新的特性。其中有 5 个全新的 JS 方法,可以大幅度提升我们的开发效率,和我一起看看吧! Object.groupBy() Object.groupBy()方...
目录
文章目录隐藏
  1. Object.groupBy()
  2. Promise.withResolvers
  3. Records 和 Tuples
  4. Temporal
  5. 装饰器(Decorators)
  6. 结语

即将发布的 ES2024:JS 迎来重大突破和新方法公布

ECMAScript 2024(ES15) 即将发布(2024 年 6 月),新的版本带来了非常多全新的特性。其中有 5 个全新的 JS 方法,可以大幅度提升我们的开发效率,和我一起看看吧!

Object.groupBy()

Object.groupBy()方法是一项新添加的功能,允许我们按照特定属性将数组中的 对象分组,从而使数据处理变得更加容易。

const pets = [
  { gender: '男', name: '张三' },
  { gender: '女', name: '李四' },
  { gender: '男', name: '王五' }
];

const res = Object.groupBy(pets, pet => pet.gender);
console.log(res);
// 输出:
// {
//   女: [{ gender: '女', name: '李四' }]
//   男: [{ gender: '男', name: '张三' }, { gender: '男', name: '王五' }],
// }

Promise.withResolvers

这个功能引入了一个新方法来创建一个promise,直接返回 resolve 和 reject 的回调。使用Promise.withResolvers,我们可以创建直接在其执行函数之外 resolve 和 reject。

const [promise, resolve, reject] = Promise.withResolvers();

setTimeout(() => resolve('Resolved after 2 seconds'), 2000);

promise.then(value => console.log(value));

Records 和 Tuples

Records 和 Tuples 是全新的数据结构,提供了一种更简洁和类型安全的方式来创建对象和数组。

  • Records 类似于对象,但具有具体类型的固定属性集。
  • Tuples 类似于数组,但具有固定长度,每个元素可以具有不同类型。
let record = #{
  id: 1,
  name: "JavaScript",
  year: 2024
};
console.log(record.name); // 输出: JavaScript

Temporal

Temporal 提案引入了一个新的 API,以更直观和高效的方式 处理日期和时间。例如,Temporal API 提供了新的日期、时间和持续时间的数据类型,以及用于创建、操作和格式化这些值的函数。

const today = Temporal.PlainDate.from({ year: 2023, month: 11, day: 19 });
console.log(today.toString()); // 输出: 2023-11-19

const duration = Temporal.Duration.from({ hours: 3, minutes: 30 });
const tomorrow = today.add(duration);
console.log(tomorrow.toString()); // 输出: 2023-11-20

装饰器(Decorators)

装饰器(Decorators)是一种提议的语法,用于添加元数据或修改类、函数或属性的行为。装饰器可用于实现各种功能,如日志记录、缓存和依赖注入。

function logged(target, key, descriptor) {
  const original = descriptor.value;
  descriptor.value = function(...args) {
    console.log(`Calling ${key} with`, args);
    return original.apply(this, args);
  };
  return descriptor;
}

class Example {
  @logged
  sum(a, b) {
    return a + b;
  }
}

const e = new Example();
e.sum(1, 2); // 输出:[1, 2]

除此之外,ES15 还提供了很多其他的新提案,比如:新的正则v、管道符|>String.prototype.isWellFormed()ArrayBuffer.prototype.resize 等等,感兴趣的可以到 mdn 网站上进行了解。

结语

ES2024 的发布将标志着 JavaScript 语言在功能和表达能力上的又一次飞跃,为开发者们带来了更多便利和简洁。让我们共同期待 ES2024 的正式发布,并迎接这些重大突破和新方法的到来吧!

以上关于即将发布的ES2024:JS迎来重大突破和新方法公布的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 即将发布的ES2024:JS迎来重大突破和新方法公布

发表回复