ECMAScript 2020有哪些新特性

发布时间:2025-02-12 02:38:10 作者:小樊
来源:亿速云 阅读:95

ECMAScript 2020(ES11)引入了许多新特性,以下是一些主要的特性:

  1. 空值合并运算符 (??):当左侧操作数为 null 或 undefined 时,返回右侧操作数,否则返回左侧操作数。例如:

    const foo = null ?? 'default string'; // 'default string'
    const baz = 0 ?? 42; // 0
    
  2. 可选链操作符 (?.):在访问对象属性时,如果对象是 null 或 undefined,不会引起错误,而是返回 undefined。例如:

    const user = { name: 'Kelly', address: { street: 'Main St.' }};
    const street = user?.address?.street; // 'Main St.'
    
  3. Promise.allSettled():返回一个在所有给定的 promise 都已经 fulfilled 或 rejected 后的 promise,并带有一个对象数组,每个对象表示对应的 promise 结果。例如:

    const promises = [Promise.resolve(3), new Promise((resolve) => setTimeout(() => resolve(1), 3000)), Promise.reject(new Error('fail'))];
    Promise.allSettled(promises).then((results) => {
        console.log(results);
        // [{ status: "fulfilled", value: 3 }, { status: "fulfilled", value: 1 }, { status: "rejected", reason: Error: fail }]
    });
    
  4. BigInt:用于表示任意精度的整数。通过在整数末尾附加 n 或调用 BigInt() 函数来创建。例如:

    const bigInt = 9007199254740991n;
    const result = bigInt + 1n; // 9007199254740992n
    
  5. globalThis:提供一个标准的方式来获取不同环境下的全局对象,避免了在不同环境(如浏览器、Node.js)中对 windowselfglobal 等的依赖。例如:

    console.log(globalThis); // 指向当前环境的全局对象
    
  6. String.prototype.matchAll():返回一个包含所有匹配正则表达式的结果及其分组捕获组的迭代器。例如:

    const str = 'test1test2';
    const regex = /t(e)(st(\d?))/g;
    const matches = [...str.matchAll(regex)];
    console.log(matches);
    // [['test1', 'e', 'st1', index: 0, input: 'test1test2', groups: undefined], ['test2', 'e', 'st2', index: 4, input: 'test1test2', groups: undefined]]
    

这些新特性旨在提高代码的可读性、简洁性和安全性。

推荐阅读:
  1. ECMAScript6新特性的示例分析
  2. ECMAScript的新特性有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ecmascript

上一篇:ECMAScript与JavaScript有何关系

下一篇:ECMAScript如何影响前端开发

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》