深入解析 ES6 系列(一)

简介

欢迎来到深度探索 ES6!在这个新的周系列里,我们将探索 ECMAScript 6。这是一种 JavaScript 语言即将到来的新版本。ES6 包含了很多新的语言功能,且这些语言功能使得 JS 更加强大更富有表现力。在接下来的几周时间里,我们将会一个一个地了解这些新功能。但是在我们了解细节的东西之前,我们值得花一点时间来讨论一下什么是 ES6 以及你期望能得到什么。

ECMAScript 的范围是什么?

JavaScript 编程语言是由 ECMAScript 名下的 ECMA 进行标准化制定的( ECMA 是和 W3C 一样的标准化组织 )。除此之外,ECMAScript 可如下定义:

  • 语法-解析规则,关键字,语句,声明,操作等等。
  • 类型-布尔型,数字,字符串,对象等等。
  • 原型和继承。
  • 内置对象和函数的标准库 - JSON ,数学( Math ), 数组方法( Array methods ),对象内省的方法( Object introspection methods )等等。

其没有定义与 HTML 、CSS 或者 Web API 交互的内容,比如 DOM ( 文档对象模型 )。那些都是在单独的标准中定义的。 ECMAScript 不仅在浏览器环境中的涵盖了 JS 的所有方面,其在非浏览器环境中也涵盖了 JS ,例如 node.js 。

新的标准

上周, ECMAScript 语言规范的最终草案,第 6 版,被提交给 ECMA 大会进行审查。这意味着什么呢?

这意味着这个夏天,对于核心的 JavaScript 编程语言,我们将有一个新的标准。

这是一个大新闻。新的 JS 语言不是每天都可能出现的。 上一个版本,ES5,可以追溯到 2009 年。从那时起,ES 标准委员会就一直致力于 ES6 的制定直至今日。

ES6 是语言的一次重大的升级。同时,你的 JS 代码也可以继续工作。ES6 被设计为可以最大程度兼容现有的代码。事实上,很多浏览器已经支持丰富的 ES6 的功能,同时实现工作也正在进行中。这就意味着你所有的 JS 代码已经可以在那些实现一些 ES6 功能的浏览器里面运行!如果你到现在还没有看到任何兼容性问题,你可能永远也不会碰到这些问题了。

计数到 6

ECMAScript 标准的先前的版本分别编号为 1,2,3 和 5。

第四版本发生了什么?第 4 版的 ECMAScript 曾是在计划之中的,并且事实上大量的工作也已经完成了。但由于它过于的繁琐,其最终被废弃了。 ( 例如,它在静态类型系统中对泛型和类型推断有一个复杂的选择。)

ES4 是有争议的。当标准委员会最终停止继续制定时,该委员会成员同意出版一个相对温和的 ES5 ,然后继续工作以制定更多的有较大幅度改进的新功能。这个直接通过谈判达成的协议被称为“和谐(Harmony)”,这也是为什么 ES5 规范包含这两句话:

ECMAScript 是一个充满活力的语言且其语言的演化还不完整。在未来的 ECMAScript 的版本中将有较大提升的技术的声明。

这种说法也可以被看作是委员会给出的一个承诺。

兑现承诺

ES5 在 2009 年对语言进行了更新,其介绍了 Object.create( ), Object.defineProperty( ), getter 和 setter 方法,strict 模式和 JSON 对象。我已经使用了所有的这些功能,而且我喜欢 ES5 对语言做出的贡献。但是, 这些功能中的任何一种都没有对我写 JS 代码的方式产生巨大的影响。对我来说其最重要的创新,很可能是新的数组方法:.MAP,filter 等等。

然而,ES6 是决然不同的。它是多年和谐工作的产物。 同时,它是新的语言和库功能的宝库,其是迄今为止 JS 的最实质性的升级。 其新功能涵盖面很广,从那些很受欢迎的能带来便利的功能(如箭头的功能和简单的字符串插值),到能带来头脑风暴的概念(如代理和生成器)。

ES6 将改变你写 JS 代码的方式。

本系列旨在向你展示 ES6 如何通过检查其新功能来给JavaScript程序员提供新的写代码体验。

我们将以一个典型的“功能缺失”作为开始。“功能缺失”是我在过去的十年的时间内一直渴望能从 JavaScript 那看到的。所以,让我们一起去探索 ES6 迭代器和新的 for-of 循环。

托管地址:http://wiki.jikexueyuan.com/project/es-six-deeply/an-introduction.html

时间: 2024-10-01 02:49:09

深入解析 ES6 系列(一)的相关文章

Sublime插件支持Sass编译和Babel解析ES6 & .sublime-build文件初探(转载自imwtr)

原文请看:http://www.cnblogs.com/imwtr/p/6010550.html 用Sublime Text蛮久了,配置配来配去的,每次换电脑都得重头再配过,奈何人老了脑子不中用了,得好好整理一些,下次换电脑就有得参考了.. 同事说,他的WebStorm简直太方便,自身集成了很多方便的工具,不用配置太多 哈哈哈哈但我还是更喜欢用ST 如果要将Sass编译成css文件,安装相应的编译工具就行,然后在命令行直接sass a.scss:b.css 编译就行了 要将ES6解析成ES5的语

[js高手之路] es6系列教程 - 迭代器,生成器,for...of,entries,values,keys等详解

接着上文[js高手之路] es6系列教程 - 迭代器与生成器详解继续. 在es6中引入了一个新的循环结构for ....of, 主要是用来循环可迭代的对象,那么什么是可迭代的对象呢? 可迭代的对象一般都有Symbol.iterator属性,你可以在控制台中用console.dir打印数组,Map,Set,在他们的原型对象(prototype)上面就能找到.这个属性与迭代器密切相关,通过该函数可以返回一个迭代器,下文,我会举一个例子.一般来说所有的集合对象(数组,Set,Map 以及字符串)都是可

Sublime插件支持Sass编译和Babel解析ES6 & .sublime-build文件初探

用Sublime Text蛮久了,配置配来配去的,每次换电脑都得重头再配过,奈何人老了脑子不中用了,得好好整理一些,下次换电脑就有得参考了.. 同事说,他的WebStorm简直太方便,自身集成了很多方便的工具,不用配置太多 哈哈哈哈但我还是更喜欢用ST 如果要将Sass编译成css文件,安装相应的编译工具就行,然后在命令行直接sass a.scss:b.css 编译就行了 要将ES6解析成ES5的语法形式,同样的安装好babel工具,命令行执行 babel a.js -o b.js 即可 但始终

ES6 系列之异步处理实战

前言 我们以查找指定目录下的最大文件为例,感受从 回调函数 -> Promise -> Generator -> Async 异步处理方式的改变. API 介绍 为了实现这个功能,我们需要用到几个 Nodejs 的 API,所以我们来简单介绍一下. fs.readdir readdir 方法用于读取目录,返回一个包含文件和目录的数组. fs.stat stat 方法的参数是一个文件或目录,它产生一个对象,该对象包含了该文件或目录的具体信息.此外,该对象还有一个 isFile() 方法可以

深度解析Istio系列之Istio-proxy初始化篇

注:以下讲述的按理环境场景是基于Kubernetes环境基础上部署的Istio环境. 涉及到Envoy概念介绍请参考深度解析Istio系列之流量控制篇.本文重点针对Envoy初始化场景进行拆解. Istio-proxy(Envoy)作为Istio数据平面的重要组件,基于sidecar方式与业务应用混合部署到同一pod,为应用提供代理服务.Pilot作为控制平面组件,基于元数据的抽象层,屏蔽底层具体容器环境(Kubernetes或者docker),同时为Envoy的策略执行提供有效的数据支撑.那么

[ES6系列-04]再也不乱“哇”了:用 let 与 const 替代 var

[原创]码路工人 Coder-Power 大家好,这里是码路工人有力量,我是码路工人,你们是力量. github-pages 博客园cnblogs 今天的内容是,关于 JavaScript 中定义变量的变化(其实不确切,函数,常量表示被冷落). 首先,回顾下 var 定义存在的问题 1. 哇..var 好乱.. 1.1 可以重复定义 /* eg.0 * multi-definition of var-variable */ //----------------------------------

.NET解析专题系列

鉴于在每个程序员在进阶的路上都要进行一些语言层面的基础回顾总结,编写本系列一是为了巩固自己的知识点,二是希望能帮助一些.NET程序员在进阶路上少走一些弯路,三是希望各位也能通过本系列多多交流. 这一系列的文章,不出意外的话,楼主会两天或者三天更新一篇,这也是为了更好更全面的总结到每个知识点,同时楼主也是每天在工作之余抽出四个小时时间进行学习,总结,编写博客.目的是达到最终的质量达到最优. [1].NET泛型解析(上) [2].NET泛型解析(下) [3].NET可变性解析(协变和逆变) [4].

【ES6系列】一、ES6简介

说明 本系列是笔记,参考以下两个网站,本系列的其他笔记中将不再说明 [1] http://es6.ruanyifeng.com/ [2] https://developer.mozilla.org/zh-CN/ 如果想学习javascript或es6,推荐到以上两个网站学习 诞生 2015年6月17日,ECMAScript的第六个版本正式发布,该版本正式名称为ECMAScript 2015,但通常被称为ECMAScript 6或者ES6. 对ES6的支持 浏览器对ES6的支持情况 Node.js

[ES6系列-07]Generator Function: 生成器函数

[原创]码路工人 Coder-Power 大家好,这里是码路工人有力量,我是码路工人,你们是力量. github-pages 博客园cnblogs Generator function 生成器函数是ES6中新增的语法糖,本质上讲,就是以封装成一个遍历器的形式,让编码的你获得程序的执行控制权,通俗地说就是,流程控制上,踹一脚,走一步,不要太暴力~ 0.前言 要说到生成器函数,就不得不提到javascript的异步编程方式演进史. (不能跑题不能跑题不能跑题) 1.普通的回调函数方式(callbac