验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

ECMAScript的全局对象有哪些变化

阅读:414 来源:乙速云 作者:代码code

ECMAScript的全局对象有哪些变化

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语言的不断发展和完善,以适应现代编程的需求。

分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>