写点什么

ECMAScript 2015 正式发布

  • 2015-06-26
  • 本文字数:1347 字

    阅读完需:约 4 分钟

Ecma 国际大会宣布正式批准 ECMA-262 第 6 版,亦即 ECMAScript 2015(曾用名:ECMAScript 6、ES6)的语言规范。

JavaScript 是 Brendan Eich 在 1995 年用 10 天的时间发明的,但是它经历了 20 年的时间才逐渐吸收了在其它现代语言中所流行的一些特性。它并非你初学编程语言的最佳选择,但是却成就了一个非常好的思想:即在浏览器中使用的语言,因此 JavaScript 迅速地吸引了人们的眼球,并于第二年提交了标准化请求。1997 年由 Ecma 发布了 1.0 版本,1998 年的 2.0 版本只进行了小幅修改,1999 年发布 3.0 版本,增加了一些新的特性。

自此以后的几年中 JavaScript 便被冷落,直到 Ajax 作为浏览器中客户端应用的解决方案一举兴起,改进 JavaScript 的工作才重整旗鼓,但是起初并非所有相关人员都完全赞同接下来的发展方向。直到 2008 年,ECMAScript 技术委员会 TC39 就草案制定问题达成一致,决定先进行一次小规模迭代,亦即 2009 年发布的 ECMAScript 5(ES5),随后再进行一次更大规模的迭代,也就是这次所批准的 ES6。

最新版本 JavaScript 的官方名称是 ECMAScript 2015,Ecma 国际意在更频繁地发布包含小规模增量更新的新版本,下一版本将于 2016 年发布,命名为 ECMAScript 2016。从现在开始,新版本将按照 ECMAScript+ 年份的形式发布。

ES6 是继 ES5 之后的一次主要改进,语言规范由 ES5.1 时代的 245 页扩充至 600 页。ES6 增添了许多必要的特性,例如:模块和类,以及一些实用特性,例如 Maps、Sets、Promises、生成器(Generators)等。尽管 ES6 做了大量的更新,但是它依旧完全向后兼容以前的版本,标准化委员会决定避免由不兼容版本语言导致的“web 体验破碎”。结果是,所有老代码都可以正常运行,整个过渡也显得更为平滑,但随之而来的问题是,开发者们抱怨了多年的老问题依然存在。

目前,没有一款完全支持 ES6 的 JavaScript 代理(无论是浏览器环境还是服务器环境),所以热衷于使用语言最新特性的开发者需要将 ES6 代码转译为 ES5 代码。等到主流浏览器完全实现 ES6 特性大概需要一年左右的时间,若想一睹各代理对于 ES6 特性的支持情况,我们推荐大家参考由 kangax 维护的 ECMAScript Compatibility Table

ECMAScript 2016 的制定工作已经启动,许多草案已被提交到委员会,包括以下这些:异步方法、定型对象、并行JavaScript、类修饰符以及observables。虽然委员会正在积极评估这些特性,但我们无法预知它们的未来,其中一些会加入到下一版规范,另一些会加入未来的其它规范,剩下的将最终被遗弃。 TC39 进程解释了新特性从开始到最终被语言采用所经历的各种阶段。

JavaScript 起初发展缓慢,但是最近正在飞速进化,JavaScript 是持久的,未来有更大的发展空间。数以百万计的开发者正受益其中,希望标准化组织会引导其走向社区乐于见到的康庄大道。

扩展阅读:《探索ES6:相关书籍介绍及作者采访》,这篇文章回顾了Axel Rauschmayer 近期撰写的有关深度解析ES6 新特性的书籍。

查看英文原文: ECMAScript 2015 Has Been Approved


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-26 07:4510070
用户头像

发布了 63 篇内容, 共 133.2 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

MySQL权限管理

武师叔

8月月更

低代码实现探索(四十七)低的不止前端,还有后端

零道云-混合式低代码平台

头脑风暴:打家劫舍2

HelloWorld杰少

算法 LeetCode 动态规划 8月月更

舔狗至高境界,学会这个技巧让你从舔狗升华到海王【Python趣味爬虫】

Geek_ac6fb9

后端

直播 | 服务餐饮商户年交易额超 7000 亿,哗啦啦如何用 StarRocks 搞定实时报表

StarRocks

数据库

Java 多行字符串

HoneyMoose

Kubernetes 企业如何落地

CTO技术共享

开源 签约计划第三季 8月月更

openEuler 资源利用率提升之道02:典型应用下的效果

openEuler

开源 数据 cpu 操作系统 openEuler

分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03

刘悦的技术博客

golang 编程 教程 教程分享 golang 面试

Kubernetes 资源核心原理

CTO技术共享

开源 签约计划第三季 8月月更

经验分享|低成本快节奏搭建企业知识管理系统的方法

Baklib

培训预告 | 企业应用现代化实用教程——DevOps方法论及最佳实践篇 8月11日上线

York

DevOps 云原生 团队建设 降本增效 应用现代化

中断系统结构及中断控制详解

timerring

8月月更

Spring Cloud Stream 消息发送

急需上岸的小谢

8月月更

兼容并蓄广纳百川,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang复合容器类型的声明和使用EP04

刘悦的技术博客

golang go doc 教程 教程分享 golang 面试

开源一夏 | jQuery对于链和捕获的实战研究

恒山其若陋兮

开源 8月月更

Sass.vs.Less | 简介之基础语法

Jason199

SASS 8月月更

【高并发】别闹了,要实现亿级流量下的分布式限流,这些算法你必须掌握!!

冰河

并发编程 多线程 高并发 协程 异步编程

什么是Shell?从小白到入门你只差一个它

Albert Edison

Linux centos 运维 shell脚本编程 8月月更

借问变量何处存,牧童笑称用指针,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang类型指针(Pointer)的使用EP05

刘悦的技术博客

入门 教程 Go web 教程分享 入门介绍

SRv6故障管理

穿过生命散发芬芳

8月月更 SRv6

Kubernetes 实现 CI/CD 发布流程

CTO技术共享

开源 CI/CD 签约计划第三季 8月月更

企业进行知识共享的好处有哪些?

Geek_da0866

文档管理系统对于企业来说有哪些作用?

Baklib

超人飞来!Flutter 实现满屏的力量感动画!

岛上码农

flutter ios 移动端开发 安卓开发 8月月更

Kubernetes与OpenStack

CTO技术共享

开源 OpenStack 签约计划第三季 8月月更

RocketMQ 详解系列

牧小农

RocketMQ

每日一R「01」跟着大佬学 Rust

Samson

8月月更

Unity Metaverse(四)、接入环信IM SDK 实现用户登录注册

CoderZ

Unity 登录验证 环信im 8月月更

抖音开启“818发现好物节”:电商平台造节活动何时休

石头IT视角

微服务架构的核心关键点

阿泽🧸

微服务架构 8月月更

ECMAScript 2015正式发布_语言 & 开发_Abel Avram_InfoQ精选文章