手册

目录

JS 2022

收藏259

阅读599

更新时间2025-08-07

JavaScript 版本号

旧的 ECMAScript 版本以数字命名:ES5 和 ES6。

从 2016 年开始,版本以年份命名:ES2016、2018、2020、2022。

ES2022 的新特性

  • Array at()
  • String at()
  • RegExp /d
  • Object.hasOwn()
  • error.cause
  • await import
  • 类字段声明
  • 私有方法和字段

警告:

这些特性相对较新。

旧版浏览器可能需要替代代码(Polyfill)。

JavaScript Array at()

ES2022 引入了数组方法 at()

例子 1

获取 fruits 数组的第三个元素:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);
运行实例 »

点击 "运行实例" 按钮查看在线实例

例子 2

获取 fruits 数组的第三个元素:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];
运行实例 »

点击 "运行实例" 按钮查看在线实例

at() 方法从数组中返回指定索引的元素。

at() 方法与 [] 返回的结果相同。

自 2022 年 3 月起,所有现代浏览器中均支持 at() 方法:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
2021 年 4 月 2021 年 7 月 2021 年 7 月 2022 年 3 月 2021 年 8 月

注意:

许多语言允许使用负索引(如 [-1])访问对象/数组/字符串的末尾元素。

这在 JavaScript 中不可行,因为 [] 用于访问数组和对象。obj[-1] 指的是键 -1 的值,而不是对象的最后一个属性。

at() 方法在 ES2022 中引入,以解决此问题。

JavaScript String at()

ES2022 引入了字符串方法 at()

例子 1

获取 name 字符串的第三个字母:

const name = "W3School";
let letter = name.at(2);
运行实例 »

点击 "运行实例" 按钮查看在线实例

例子 2

获取 name 字符串的第三个字母:

const name = "W3School";
let letter = name[2];
运行实例 »

点击 "运行实例" 按钮查看在线实例

at() 方法从字符串中返回指定索引的字符。

at() 方法与 [] 返回的结果相同。

自 2022 年 3 月起,所有现代浏览器中均支持 at() 方法:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
2021 年 4 月 2021 年 7 月 2021 年 7 月 2022 年 3 月 2021 年 8 月

RegExp d 修饰符

ES2022 添加了 /d 修饰符,用于表示匹配的开始和结束。

实例

let text = "aaaabb";
let result = text.match(/(aa)(bb)/d);
运行实例 »

点击 "运行实例" 按钮查看在线实例

RegExp 修饰符用于指定不区分大小写,以及其他全局搜索:

修饰符 描述 试一试
g 执行全局匹配(查找所有)。 试一试
i 执行不区分大小写的匹配。 试一试
d 执行子字符串匹配(ES2022 新增)。 试一试
m 执行多行匹配。 试一试

Object.hasOwn()

ES2022 提供了一种安全的方法来检查属性是否是对象的自有属性。

Object.hasOwn() 类似于 Object.prototype.hasOwnProperty,但支持所有对象类型。

实例

Object.hasOwn(myObject, age)
运行实例 »

点击 "运行实例" 按钮查看在线实例

Error Cause

ES2022 允许通过 error.cause 指定错误的根本原因。

实例

try { 
  connectData(); 
} catch (err) { 
  throw new Error("Connecting failed.", { cause: err }); 
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

JavaScript await import

JavaScript 模块现在可以在运行前等待需要导入的资源:

import {myData} from './myData.js';

const data = await myData();

JavaScript 类字段声明

class Hello {
  counter = 0; // 类字段
}
const myClass = new Hello();

let x = myClass.counter;

自 2021 年 4 月起,所有现代浏览器中均支持类字段声明:

Chrome Edge Firefox Safari Opera
Chrome 72 Edge 79 Firefox 69 Safari 14.1 Opera 60
2019 年 1 月 2020 年 1 月 2019 年 9 月 2021 年 4 月 2020 年 1 月

JavaScript 私有方法和字段

class Hello {
  #counter = 0;  // 私有字段
  #myMethod() {} // 私有方法
}
const myClass = new Hello();

let x = myClass.#counter; // 错误
myClass.#myMethod();      // 错误

自 2021 年 6 月起,在所有现代浏览器中均支持私有方法和字段:

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
2019 年 4 月 2020 年 1 月 2021 年 6 月 2021 年 4 月 2019 年 6 月

相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

219920次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

616946次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

238440次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

393054次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

229605次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号