写点什么

深入浅出 ES6(一):ES6 是什么

  • 2015-06-05
  • 本文字数:1691 字

    阅读完需:约 6 分钟

编者按:ECMAScript 6 离我们越来越近了,作为它最重要的方言,Javascript 也即将迎来语法上的重大变革,InfoQ 特开设“深入浅出ES6 ”专栏,来看一下ES6 将给我们带来哪些新内容。本专栏文章来自 Mozilla Web 开发者博客,由作者授权翻译并发布。

欢迎来到 ES6 深入浅出!JavaScript 的新版本离我们越来越近,我们将通过每周一节的系列课程一起探索 ECMAScript 6 新世界。ES6 中包含了许多新的语言特性,它们将使 JS 变得更加强大,更富表现力。在接下来的几周内,我们将一一深入了解它们。但在我们开始详细学习之前,我认为十分有必要花几分钟讲解一下 ES6 到底是什么,以及你可以从中学到什么!

ECMAScript 发生了什么变化?

编程语言 JavaScript 是 ECMAScript 的实现和扩展,由 ECMA(一个类似 W3C 的标准组织)参与进行标准化。ECMAScript 定义了:

ECMAScript 标准不定义 HTML 或 CSS 的相关功能,也不定义类似 DOM(文档对象模型)的 Web API ,这些都在独立的标准中进行定义。ECMAScript 涵盖了各种环境中 JS 的使用场景,无论是浏览器环境还是类似 node.js 的非浏览器环境。

新标准

上周,ECMAScript 语言规范第 6 版最终草案提请 Ecma 大会审查,这意味着什么呢?

这意味着在今年夏天,我们将迎来最新的JavaScript核心语言标准

这无疑是一则重磅新闻。早在 2009 年,上一版 ES5 刚刚发布,自那时起,ES 标准委员会一直在紧锣密鼓地筹备新的 JS 语言标准——ES6。

ES6 是一次重大的版本升级,与此同时,由于 ES6 秉承着最大化兼容已有代码的设计理念,你过去编写的 JS 代码将继续正常运行。事实上,许多浏览器已经支持部分 ES6 特性,并将继续努力实现其余特性。这意味着,在一些已经实现部分特性的浏览器中,你的 JS 代码已经可以正常运行。如果到目前为止你尚未遇到任何兼容性问题,那么你很有可能将不会遇到这些问题,浏览器正飞速实现各种新特性。

版本号 6

ECMAScript 标准的历史版本分别是 1、2、3、5。

那么为什么没有第 4 版?其实,在过去确实曾计划发布提出巨量新特性的第 4 版,但最终却因想法太过激进而惨遭废除(这一版标准中曾经有一个极其复杂的支持泛型和类型推断的内建静态类型系统)。

ES4 饱受争议,当标准委员会最终停止开发 ES4 时,其成员同意发布一个相对谦和的 ES5 版本,随后继续制定一些更具实质性的新特性。这一明确的协商协议最终命名为“Harmony”,因此,ES5 规范中包含这样两句话:

ECMAScript 是一门充满活力的语言,并在不断进化中。

未来版本的规范中将持续进行重要的技术改进。

这一声明许下了一个未来的承诺。

兑现承诺

2009 年发布的改进版本 ES5,引入了 Object.create() Object.defineProperty() getters setters 严格模式以及 JSON 对象。我已经使用过所有这些新特性,并且我非常喜欢 ES5 做出的改进。但事实上,这些改进并没有深入影响我编写 JS 代码的方式,对我来说最大的革新大概就是新的数组方法:.map() . filter() 这些。

但是,ES6 并非如此!经过持续几年的磨砺,它已成为JS 有史以来最实质的升级,新的语言和库特性就像无主之宝,等待有识之士的发掘。新的语言特性涵盖范围甚广,小到受欢迎的语法糖,例如箭头函数(arrow functions)和简单的字符串插值(string interpolation),大到烧脑的新概念,例如代理(proxies)和生成器(generators)。

ES6 将彻底改变你编写 JS 代码的方式!

这一系列旨在向你展示如何仔细审阅 ES6 提供给 JavaScript 程序员的这些新特性。

我们将从一个经典的“遗漏特性”说起,十年来我一直期待在 JavaScript 中看到的它。所以从现在起就加入我们吧,一起领略一下 ES6 迭代器(iterators)和新的 for-of 循环!


感谢刘振涛对本文的策划,徐川对本文的审校。

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

2015-06-05 00:19293112
用户头像

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

关注

评论

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

牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖

Java 编程 程序员 架构 面试

Java全家桶的这些知识,不用学了

Java 架构 后端 计算机

靶向蛋白质组技术研发进入快车道,北鲲云超算为技术顺利推进提供有力支撑

北鲲云

区块链产业正处于繁荣前夜(下)

CECBC

今天聊一聊Golang的互斥锁吧

Regan Yue

互斥锁 互斥锁Mutex 8月日更

谈 C++17 里的 Factory 模式

hedzr

c++ factory pattern c++17 factory method

Github星标百万!终于有人将Spring技术精髓收录成册

Java 编程 架构 面试 架构师

全网震动!阿里员工人手一份却禁止外传的P5-P9Java进阶学习路线

Java~~~

Java 架构 面试 分布式 高并发

JAVA应用生产问题排查步骤

Java 编程 架构 程序人生 架构师

阿里的新“宠儿”!终于有人总结出了Spring源码从初级到高级手册

Java架构追梦

Java spring 阿里巴巴 架构 面试

量化机器人软件开发|自动交易机器人

量化系统19942438797

机器人 量化交易

在阿里离职后,从内部带走的这份485页面试合集,在GitHub上火了

Java~~~

Java 架构 面试 架构师

架构实战营 模块六 作业

一雄

作业 架构实战营 模块六

☕【Java技术指南】「TestNG专题」单元测试框架之TestNG使用教程指南(上)

洛神灬殇

Java 测试 单元测试 8月日更 testNG

华为云数据库内核专家为您揭秘:GaussDB(for MySQL)并行查询有多快?

华为云数据库小助手

GaussDB 华为云数据库 GaussDB(for MySQL)

CC校园运动小程序云开发解决方案

CC同学

Linux如何进行GPIO读写操作的?

华为云开发者联盟

Linux value GPIO GPIO开发 sysfs

Alibaba内网“疯狂”传阅的P8开源出的SpringBoot入门到进阶小册

Java~~~

Java spring 架构 面试 Spring Boot

细节炸裂!阿里P8高管总结出这份1500页的Java编程思想(第六版)

Java~~~

Java 编程 架构 面试 网络

成为高效工程师的四步法则

俞凡

生产力 认知

醍醐灌顶Nginx 原理和架构

hanaper

阿里的新“宠儿”!终于有人总结出了Spring源码从初级到高级手册

Java~~~

Java spring 架构 面试 Spring Cloud

GitHub上这份阿里的Java高并发核心手册,即使再过20年依然“NB”

Java~~~

Java 架构 面试 分布式 高并发

不可错过的mysql,redis,nginx视频讲解

hanaper

少侠留步!赠你一份阿里内部广为流传的23种设计模式核心笔记

Java~~~

Java 架构 面试 分布式 架构师

模块六作业:拆分电商系统为微服务

Felix

在PyQt中构建 Python 菜单栏、菜单和工具栏

华为云开发者联盟

Python

基于语音情感识别的应用和挑战,详解华为云的语音情感识别方案

华为云开发者联盟

学习 语音 情感识别 跨模态知识迁移 跨模态

微校园小程序(云开发)设计方案

CC同学

springboot使用redis(从配置到实战)

Python研究者

8月日更

一种单机支持 JavaWeb 容器万级并发的设想

Java 编程 程序员 面试

深入浅出ES6(一):ES6是什么_JavaScript_Jason Orendorff_InfoQ精选文章