挺迷惑的,不过感觉可以粗浅地理解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
相关推荐
重要警告此本地插件使用的基础v8 API仍处于试验阶段,并且二进制兼容串行化将具有循环依赖关系的复杂JavaScript对象或ES6类本地化为本地序列。 重要警告此本地插件使用的基础v8 API仍处于试验阶段,在两个不同节点...
一个人可以很容易地使用它,而无需深刻地了解图形理论术语和其算法,它可以作为黑盒数据结构来处理JavaScript中任何对象之间的关系。 但是,强烈建议用户至少具有图论的基本概念。 安装 要在任何项目上本地使用,请...
原型链图是用于表示 JavaScript 中对象之间原型关系的图形化表达方式。在 JavaScript 中,每个对象都有一个原型 (prototype),它定义了对象的属性和方法。对象可以通过原型链访问到其原型的属性和方法。 原型链图将...
建立了合作伙伴关系) 旨在对初学者友好 什么是 JavaScript JavaScript 标准化 1996 年 Microsoft 为 Internet Explorer 实现的 JScript 推动标准化 由标准机构“Ecma”处理的规范 名为“ECMAScript”的规范以避免 ...
依存关系由叶子之间的箭头表示。 右边是所选文件的内容,它是只读的。 每个文件有四种可能的状态,用四种颜色表示。 橙色:有dependencies 。 没有dependents 。 通常是项目的入口文件。 绿色:有dependencies ...
之间的关系 - 精选文章、视频和演示文稿 - github 上最流行的 JavaScript 库 - 搜索 polyfills ES6 / ES2015 - 一本专注于模块化和 ES6 特性的免费电子书 ES6 - 通过一系列自学研讨会介绍一些 ES6 功能 - 编写 E
通过消除审阅者和贡献者之间的来回关系,节省宝贵的代码审阅时间。 立即运行npx standard --fix尝试一下! 目录 快速开始 常问问题 安装 使用JavaScript标准样式的最简单方法是将其作为Node命令行程序全局安装...
允许使用不同的模块类型并描述它们之间的依赖关系。 IE 代码(javascript,coffeescript) 数据(json,文本,yaml) 样式表(css,更少,手写笔) 图像(png,jpg),着色器(glsl) 字体(ttf,woff) 模板(html...
惯用Javascript(可与ES6一起使用) 完全同步 易于测试 没有单身人士 商店之间的依赖关系的声明式定义 基础知识 有大量的助焊剂库试图解决不同的问题。 这是关于极简主义,便利性和隔离性,同时遵循了flux背后的...
可视化 每个人都可以使用的虚拟视觉板。 您可以输入引人入胜的标题,描述/引用,选择主题并上传图像以视觉激发您,从而创建愿景。...ORM-模型之间的对象关系映射 属于 有很多 以下CRUD功能: 创建 读 删除 一
跨浏览器测试工作服干净的变更日志 设计目标尽可能少的工具(不要使用yeoman,gulp,bower等) 具有当前浏览器的polyfill的ES6 可测试性:易于编写单元测试和生成代码覆盖率最小化模板,通过JSX与组件一起组成DOM ...
1KB,没有依赖关系。 为什么 无论您是懒加载图像,实现无限滚动还是避免前情人……设置边界都很重要。 从历史上看,边界检测需要混合使用事件处理程序,循环和对调用。 由于这些操作在主线程上运行,因此性能会受...
该插件旨在避免工具提示重叠,并使用户轻松找到每个工具提示与标记之间的关系。 它基于Stephen G. Kobourov所著《图形绘图和可视化手册》一书第12章中的“ 。 安装 npm i leaflet-tooltip-layout --save # or yarn ...
1.根据需求完成界面及明确界面之间的跳转关系 2.自定义组件为界面复用 3.使用JavaScript实现某些功能的逻辑处理和某些页面的动态效果 4.项目测试阶段导出js文件模拟后端接口对接和数据处理,测试功能是否完善,逻辑...
您可以定义模块之间的依赖关系。 应用nodejs模块依赖关系结构。 Redux模式使用i18next进行国际化打包功能使用webpack 代码集基于es6、7、8,并通过babel进行转译类属性装饰工剩余对象传播使用基于Web组件的Dom...
它管理类之间的依赖关系,从而使应用程序在增长时保持易于更改和维护。特征: 著名的Angular DI API。 没有外部依赖性。 。 。 使用类,和解析值。 描述性错误消息。 97%的测试覆盖率。例子:安装: npm install -...
极简主义MinimaJs是一个类似OSGi的,简单但功能强大的插件框架,基于ES6开发的NodeJS,使用IDE VSCode。 let minima = new Minima ( path . join ( __dirname , 'plugins' ) ) ;minima . start ( ) ; minimajs的体系...
预算寿命申请Budget Life是使用ReactJS和Ruby on Rails构建的单年龄,全栈Web应用程序。 这是一个简单的预算应用... 以下是实体关系图,描述了实体/模型以及这些实体之间的关联: 以下是树形的React Component Hierarc
因此,这里的代码最终变成了我们主要应用程序的笨拙依赖关系,该依赖关系由git子模块管理(这引起了极大的悲伤)。 为功能维护2个PR很烦人(我们为同一个功能有一个后端PR和一个前端PR。使它们保持同步主要是忙碌...