惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

PCI Perspectives
PCI Perspectives
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
T
The Blog of Author Tim Ferriss
罗磊的独立博客
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
Recorded Future
Recorded Future
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
Recent Announcements
Recent Announcements
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Apple Machine Learning Research
Apple Machine Learning Research
T
Threatpost
The GitHub Blog
The GitHub Blog
M
MIT News - Artificial intelligence
Scott Helme
Scott Helme
P
Palo Alto Networks Blog
T
Tenable Blog
P
Privacy International News Feed
V
Visual Studio Blog
F
Fortinet All Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
AI
AI
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Security Affairs
S
SegmentFault 最新的问题
C
Cisco Blogs
博客园 - 聂微东
MyScale Blog
MyScale Blog
V
Vulnerabilities – Threatpost
量子位
T
The Exploit Database - CXSecurity.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Security Latest
Security Latest
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Troy Hunt's Blog
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
A
About on SuperTechFans
The Last Watchdog
The Last Watchdog

Xiaobin's Notes

Mac本地快速部署DeepSeek Electron的原理 如何让大语言模型输出JSON格式 webstorm 的 cpu 占用高 修改Joplin主题样式 新一代包管理器 PNPM React useEffect() Hook Vue 2.x 使用高德地图JS API 2.0加载起点终点路径轨迹 家庭用电插座 MacOS 14.4 引发Java 应用崩溃 重定向广告 Pyenv工具 ElasticSearch集群原理 ElasticSearch集群节点 Elasticsearch Mapping 参数 Elasticsearch元数据 Elasticsearch的数据类型 Go语言的向后兼容和toolchain规则 Go 1.21 新增特性
ECMAScript 历代版本
xbl · 2024-06-20 · via Xiaobin's Notes

欧洲计算机制造商协会(European Computer Manufacturers Association)或简称 ECMA. ECMA走向全球后,在1994 年更名为:Ecma International。其商标“ECMA”由于历史原因被保留了下来,沿用至今。
ECMA-262是一种规范(官网中可以查到各个版本的PDF提案),自然会有满足这种规范的具体的语言被创造出来。最著名的就是JavaScript
(现在商标属于Oracle),在1995年由Netscape公司的Brendan Eich,在Netscape导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。其设计思路如下:

  • 借鉴 C 语言的基本语法。
  • 借鉴 Java 语言的数据类型和内存管理。
  • 借鉴 Scheme 语言,将函数提升到“第一等公民”(first class)的地位。
  • 借鉴 Self 语言,使用基于原型(prototype)的继承机制。

ECMAScript 各版本

  • ECMAScript 1.0 (1997):第一个正式标准,规范化了 JavaScript 的核心语言。

  • ECMAScript 3.0 (1999):该版本为语言带来了正则表达式、try/catch 异常处理以及更多的核心改进。

  • ECMAScript 5.0 (2009):引入了 strict mode(严格模式),并添加了许多数组方法(如 forEach、map、filter 等)。这次更新被认为是 JavaScript 现代化的重要一步。

  • ECMAScript 6 (ES2015):这是 ECMAScript 发展中的里程碑式版本,增加了 let 和 const 变量声明、类和模块系统、箭头函数、解构赋值、模板字符串、Promise、Symbol、迭代器和生成器等新特性。

  • ECMAScript 7 (ES2016):主要是增加了两个新特性:Array.prototype.include和取幂运算符。

  • ECMAScript 8 (ES2017):主要变化包括:Object.values/Object.entries、字符串填充、Object.getOwnPropertyDescriptor、尾随逗号、异步函数、共享内存和原子,等。

  • ECMAScript 9 (ES2018):ECMAScript 2018 主要包含内容:

    • 异步迭代器:原生支持在 JavaScript 中对异步获取的数据做迭代。
    • Object Rest/Spread Properties
    • Promise.prototype.finally
    • Template Literal(模板字面量):取消 Escape-Sequenzen 限制
    • 正则表达式:
      • 支持 s (dotAll) 模式
      • Unicode 属性转义(Property Escape)
      • 支持后行断言(Lookbehind Assertions)
      • 命名捕获组(named capture group)
  • ECMAScript 10 (ES2019):

    • Array.prototype.flat() 和 Array.prototype.flatMap()
    • Object.fromEntries()
    • String.prototype.trimStart() 和 String.prototype.trimEnd()
    • Array.prototype.sort() 改进
    • Symbol.prototype.description
    • Function.prototype.toString() 的改进
    • JSON.prototype.{stringify, parse} 的改进
      • JSON.stringify() 现在会忽略 undefined、symbol、函数 等值。
      • JSON.parse() 对 NaN、Infinity 和 -Infinity 的处理变得更加严格,报错而不是返回这些值。
    • RegExp.prototype.flags. RegExp.prototype.flags 属性返回正则表达式的标志(如 g, i, m 等),这是一个只读的属性,简化了获取正则标志的方式。
    • Optional Catch Binding (可选的 catch 绑定). 在 ES10 中,try…catch 语句中的 catch 变量现在是可选的,可以不指定错误对象变量。
    • Well-formed JSON.stringify() 的改进. ES10 对 JSON.stringify() 进行了改进,确保序列化结果是符合 JSON 格式的,修复了一些潜在的问题。
  • ECMAScript 11 (ES2020):

    • Optional Chaining(可选链操作符 ?.)
    • Nullish Coalescing Operator(空值合并操作符 ??)
    • BigInt
    • Promise.allSettled()
    • globalThis
    • String.prototype.matchAll()
    • Array.prototype.sort() 的稳定性
    • 模块化的顶层 await
    • Import.meta
    • 模块内的顶层 await 和新的 import 机制