温馨提示×

温馨提示×

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

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

ECMAScript的全局对象有哪些变化

发布时间:2025-05-05 10:17:06 来源:亿速云 阅读:109 作者:小樊 栏目:编程语言

ECMAScript(通常称为JavaScript)的全局对象在不同版本中经历了一些变化。以下是一些主要的变化:

ECMAScript 3 (ES3)

  • 全局变量NaN, Infinity, undefined, null
  • 全局函数eval(), isFinite(), isNaN(), parseFloat(), parseInt(), decodeURI(), decodeURIComponent(), encodeURI(), encodeURIComponent(), escape(), unescape(), with()
  • 全局对象属性Math, Date, RegExp, JSON

ECMAScript 5 (ES5)

  • 严格模式:引入了严格模式,通过'use strict';声明。
  • 新增全局函数Array.prototype.forEach(), Array.prototype.map(), Array.prototype.filter(), Array.prototype.reduce(), Object.create(), Object.defineProperty(), Object.defineProperties(), Object.getOwnPropertyNames(), Object.getOwnPropertySymbols(), JSON.stringify(), JSON.parse()
  • 新增全局对象属性JSON

ECMAScript 6 (ES6) / ECMAScript 2015

  • 类和继承:引入了class关键字和extends关键字。
  • 模块系统:引入了importexport语法。
  • 箭头函数:引入了箭头函数表达式。
  • 模板字符串:使用反引号(`)来创建模板字符串。
  • 解构赋值:允许从数组或对象中提取数据并赋值给变量。
  • 默认参数:函数参数可以有默认值。
  • 剩余参数:允许将不定数量的参数表示为一个数组。
  • Set 和 Map:引入了SetMap集合类型。
  • Promise:引入了Promise对象,用于异步操作。
  • Symbol:引入了Symbol类型,用于创建唯一的标识符。
  • 迭代器协议:引入了Symbol.iterator属性,使得对象可以被迭代。
  • 生成器函数:引入了function*语法,用于定义生成器函数。

ECMAScript 2016 (ES7)

  • 指数运算符:引入了**运算符,用于计算幂。
  • Array.prototype.includes():新增方法,用于检查数组是否包含某个元素。

ECMAScript 2017 (ES8)

  • async/await:引入了asyncawait关键字,用于简化异步代码的编写。
  • Object.values()Object.entries():新增方法,分别返回对象的值和键值对数组。
  • String.prototype.padStart()String.prototype.padEnd():新增方法,用于填充字符串。

ECMAScript 2018 (ES9)

  • 正则表达式新特性:引入了u标志,支持Unicode模式,以及y标志,支持粘性匹配。
  • Promise.finally():新增方法,无论Promise是resolved还是rejected,都会执行finally块中的代码。
  • async迭代器:引入了async function*语法,用于定义异步生成器函数。

ECMAScript 2019 (ES10)

  • Array.prototype.flat()Array.prototype.flatMap():新增方法,用于处理多维数组。
  • Object.fromEntries():新增方法,将键值对列表转换为对象。
  • String.prototype.matchAll():新增方法,返回一个迭代器,包含所有匹配结果。

ECMAScript 2020 (ES11)

  • BigInt:引入了BigInt类型,用于表示任意精度的整数。
  • Dynamic Import:允许动态导入模块。
  • Nullish Coalescing Operator:引入了??运算符,用于处理null或undefined的情况。
  • Optional Chaining:引入了?.运算符,用于简化访问嵌套对象属性的过程。

ECMAScript 2021 (ES12)

  • String.prototype.replaceAll():新增方法,用于替换字符串中的所有匹配项。
  • Promise.any():新增方法,返回第一个成功的Promise的结果。
  • Logical Assignment Operators:引入了逻辑赋值运算符,如&&=, ||=, ??=

ECMAScript 2022 (ES13)

  • String.prototype.replaceAll():改进了replaceAll()方法,使其更加强大和灵活。
  • Atomics.wait(), Atomics.notify(), Atomics.notifyAll():新增方法,用于原子操作。
  • SharedArrayBuffer:改进了SharedArrayBuffer,使其更加安全和高效。

这些变化反映了JavaScript语言的不断发展和完善,以适应现代编程的需求。

向AI问一下细节

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

AI