挺迷惑的,不过感觉可以粗浅地理解ES6是一种标准,JavaScript是ES6的一种实现。
js与node.js
JS是由ES(ECMAScript)、DOM(浏览器文档对象)、BOM(浏览器对象模型)组成。
其中Node.Js就只有ES,目前浏览器比较流行的版本就是ES6(ES2015),老浏览器的版本基本上都是ES5。所以alert和document不能在Node运行(因为Node没有dom和bom)。
ECMAScript 6简介
ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
ECMAScript和JavaScript的关系
一个常见的问题是,ECMAScript和JavaScript到底是什么关系?
要讲清楚这个问题,需要回顾历史。1996年11月,JavaScript的创造者Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这种语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。
该标准从一开始就是针对JavaScript语言制定的,但是之所以不叫JavaScript,有两个原因。一是商标,Java是Sun公司的商标,根据授权协议,只有Netscape公司可以合法地使用JavaScript这个名字,且JavaScript本身也已经被Netscape公司注册为商标。二是想体现这门语言的制定者是ECMA,不是Netscape,这样有利于保证这门语言的开放性和中立性。
因此,ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现(另外的ECMAScript方言还有Jscript和ActionScript)。日常场合,这两个词是可以互换的。
ES6与ECMAScript 2015的关系
媒体里面经常可以看到”ECMAScript 2015“这个词,它与ES6是什么关系呢?
2011年,ECMAScript 5.1版发布后,就开始制定6.0版了。因此,”ES6”这个词的原意,就是指JavaScript语言的下一个版本。
但是,因为这个版本引入的语法功能太多,而且制定过程当中,还有很多组织和个人不断提交新功能。事情很快就变得清楚了,不可能在一个版本里面包括所有将要引入的功能。常规的做法是先发布6.0版,过一段时间再发6.1版,然后是6.2版、6.3版等等。
但是,标准的制定者不想这样做。他们想让标准的升级成为常规流程:任何人在任何时候,都可以向标准委员会提交新语法的提案,然后标准委员会每个月开一次会,评估这些提案是否可以接受,需要哪些改进。如果经过多次会议以后,一个提案足够成熟了,就可以正式进入标准了。这就是说,标准的版本升级成为了一个不断滚动的流程,每个月都会有变动。
标准委员会最终决定,标准在每年的6月份正式发布一次,作为当年的正式版本。接下来的时间,就在这个版本的基础上做改动,直到下一年的6月份,草案就自然变成了新一年的版本。这样一来,就不需要以前的版本号了,只要用年份标记就可以了。
ES6的第一个版本,就这样在2015年6月发布了,正式名称就是《ECMAScript 2015标准》(简称ES2015)。2016年6月,小幅修订的《ECMAScript 2016标准》(简称ES2016)如期发布,这个版本可以看作是ES6.1版,因为两者的差异非常小(只新增了数组实例的includes方法和指数运算符),基本上是同一个标准。根据计划,2017年6月将发布ES2017标准。
因此,ES6既是一个历史名词,也是一个泛指,含义是5.1版以后的JavaScript的下一代标准,涵盖了ES2015、ES2016、ES2017等等,而ES2015则是正式名称,特指该年发布的正式版本的语言标准。本书中提到“ES6”的地方,一般是指ES2015标准,但有时也是泛指“下一代JavaScript语言”。
---------------------
原文:https://blog.csdn.net/asahinokawa/article/details/81289852
相关推荐
为了清晰地理解ECMAScript与JavaScript之间的关系,我们需要回溯至1996年。当时,Netscape公司将其创造的JavaScript提交给ECMA国际标准化组织,希望能够使这种语言成为国际标准。1997年,ECMA发布了第262号标准文件...
这种继承机制的核心在于构造函数、原型对象以及实例对象之间的关系。 1. **构造函数**: - 在ES5中,通过构造函数创建对象是最常见的模式之一。 - 构造函数通常定义了实例共享的行为(即方法)。 ```javascript ...
在 JavaScript 中,继承是实现对象之间的关系的一种方式。ES5 和 ES6 都提供了继承机制,但是它们之间存在着一些关键的差异。本文将详细介绍 ES5 和 ES6 中继承的实现机制和差异。 ES5 继承 在 ES5 中,继承是通过...
这个图将显示每个模块之间的依赖关系,包括直接依赖和间接依赖。通过这种可视化方式,开发者可以清晰地看到哪些模块是被频繁使用的,哪些可能是冗余或者很少被用到的。 **如何使用`Bonsai`** 1. **安装:** 首先...
- **控制流程**:可以有序地执行任务,防止任务之间的依赖关系混乱。 - **错误恢复**:提供了错误处理机制,能更好地管理可能出现的问题,保证程序的健壮性。 - **进度监控**:对于需要用户等待的长时间操作,如批量...
ECMAScript 和 JavaScript 之间的关系可以这样理解:ECMAScript 定义了脚本语言的标准和规范,而 JavaScript 是这一标准的一种具体实现。换句话说,JavaScript 遵循 ECMAScript 规范来实现其语言功能。 #### ES6 ...
- **JSON序列化和反序列化**:SpringBoot自动配置了Jackson库,使得与AngularJS之间的JSON数据交换变得简单。 - **安全控制**:SpringBoot的Spring Security模块可以用来保护API,防止未授权访问。 **4. 创建...
ECMAScript与JavaScript之间的关系是一个常被讨论的话题。简单来说,ECMAScript是JavaScript的标准规范,而JavaScript是该规范的一种实现。ECMAScript规范最初由ECMA组织定义,并由Netscape公司提交,希望将这种语言...
了解ES6与JavaScript的关系是理解这门语言发展的重要一步。ECMAScript是JavaScript的国际标准,而JavaScript是ECMAScript的实现。这个关系可以追溯到JavaScript的创造者Netscape公司在1996年11月将JavaScript提交给...
尽管名字相似,JavaScript与Java并没有太大的关系,它们分别属于不同的编程语系。 JavaScript主要运行在浏览器环境中,用于增强用户界面,提供动态交互。它支持事件驱动、函数式以及基于原型的编程风格。JavaScript...
了解对象创建(字面量和构造函数)以及原型链的工作原理,能够帮助你更好地理解对象之间的关系和继承。 5. **数组与数组方法**:JavaScript提供了丰富的数组方法,如push、pop、shift、unshift、splice、slice、...
JavaScript与Java、VBScript、JScript虽然名字相似,但它们之间并无直接关系。JavaScript与Java的主要区别在于它们的起源、面向对象特性、执行方式、变量声明、代码格式以及在HTML中的嵌入方式。 JavaScript的代码...
四、HTML与JavaScript的关系 JavaScript通常与HTML结合使用,以实现动态网页效果。通过在HTML中插入标签,可以引入外部JS文件或直接编写脚本。另外,还可以使用DOM(文档对象模型)API操作HTML元素。 综上所述,...
- **与Java的区分**:虽然JavaScript与Java在名称上有相似之处,但实际上它们之间并无直接关系。 - **浏览器兼容性**:JavaScript需要考虑不同浏览器的内核兼容性,主要的内核包括Trident、WebKit、Blink、Gecko,...
3. **观察者模式(Observer)**:定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在事件驱动的JavaScript中广泛使用。 4. **装饰者模式(Decorator)**...
8. **作用域和作用域链**:掌握全局作用域、函数作用域、块级作用域,以及它们之间的关系。 9. **模块化**:学习如何使用CommonJS(Node.js环境)和ES6的import/export进行模块管理。 10. **错误处理**:理解try.....
虽然二者在语法上有一定的相似性,但本质上JavaScript与Java并无太大关系。之后,为了将JavaScript标准化,网景联合其他公司,将JavaScript提交给ECMA组织,于是诞生了ECMAScript标准。 在编写JavaScript代码时,它...