ES5,6,7浅析

ECMAScript

ES是EXMAScript的简称,是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。

历史

1998年6月,ECMAScript 2.0版发布。
1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。
2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。
2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。
2009年12月,ECMAScript 5.0版正式发布。Harmony项目则一分为二,一些较为可行的设想定名为JavaScript.next继续开发,后来演变成ECMAScript 6;一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的将来再考虑推出。
2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。
2013年3月,ECMAScript 6草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7。
2013年12月,ECMAScript 6草案发布。然后是12个月的讨论期,听取各方反馈。
2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015。

虽然从来没记过这些,不过也要写上,专业!

ES5

ES5作为2009年的语言,已经使用了好几年了,在这个方面的浏览器支持都还不错,至少新型浏览器都是支持的,IE9以上的浏览器支持都不错,顺便问一句还有支持ie9以下的公司还多么,在ES5中主要扩展了Object、Array、Function这几个对象的方法,还有我工作中经常处理json的JSON.parse和JSON.stringify。像这些属性感觉配合underscore一起使用风味更佳。
详见 ES5新特性
ES5兼容性对照表

ES6

ES6作为2015年发布的, ES2015==ES6(true),常用于nodejs,虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6了,所以该懂点ES6的语法了。为了使用ES6的语法体验下新的技术,你需要使用babel,Babel是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在现有环境执行(intersting)。
ES6十大新特性(英文)
ES6兼容性对照表
最常用的ES6特性let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments
详见 ES6常用特性

ES5,6浏览器支持情况

ES7

es7目前用的比较少,也是我之前面试的时候面试官问到的,听到之后就尴尬了,我靠,还有这家伙的?
ES7中主要是Object.observe和async,说实话感觉不懂,但我还是会可耻的推荐几篇
详见 如何评价 ECMAScript 2016(ES7)只新增2个特性?

### 回答1: 将 Node.js 中的 ECMAScript 6 (ES6) 代码转换成 ES5 代码可以使用许多工具。以下是几种方法: 1.使用 Babel 编译器:Babel 是一种流行的编译器,可以将 ES6 代码转换为向后兼容的 ES5 代码。可以通过命令行安装 Babel,然后使用它来编译代码。 2.使用 TypeScript 编译器:TypeScript 是一种支持 ES6 的编程语言,并且也可以将 ES6 代码编译成 ES5 代码。可以通过命令行安装 TypeScript,并使用它来编译代码。 3.使用 Webpack:Webpack 是一种 JavaScript 应用程序打包工具,可以将 ES6 代码转换成 ES5 代码,并将多个文件打包成一个文件。可以通过 Webpack 配置文件中的 Loader 来配置代码的转换方式。 无论使用哪种方法,都需要安装相应的工具,并按照其文档说明来转换代码。 ### 回答2: 将 Node.js 的 ECMA Script 6 (ES6) 代码转换为 ECMA Script 5 (ES5) 可以通过使用不同的工具和方法来实现。下面是一种常见的方法: 1. 使用 Babel:Babel 是一个流行的 JavaScript 编译器,可以将 ES6 代码转换为 ES5。可以通过以下步骤进行转换: - 安装 Babel:在 Node.js 项目的根目录中运行以下命令安装 Babel: ``` npm install --save-dev @babel/core @babel/cli @babel/preset-env ``` - 创建 `.babelrc` 文件:在项目根目录下创建名为 `.babelrc` 的文件,并将以下内容添加到文件中: ```json { "presets": ["@babel/preset-env"] } ``` - 转换代码:在命令行中运行以下命令来转换代码: ``` npx babel src --out-dir dist ``` 这将会将 `src` 目录下的所有 ES6 代码转换为 ES5,并将转换后的代码输出到 `dist` 目录中。 2. 使用其他工具:除了 Babel,还有其他一些工具可以将 ES6 转换为 ES5。例如,可以使用 TypeScript 的编译器 `tsc` 来进行转换,或者使用 Webpack、Gulp 或 Grunt 这样的构建工具集成转换功能。具体的使用方法取决于你所选择的工具。 需要注意的是,ES6 和 ES5 之间存在一些语法和功能的差异,因此在转换代码之前,请确保熟悉目标平台的限制和要求,并进行适当的代码调整和测试,以确保代码在转换后仍然可以正常运行。 ### 回答3: 将 Node.js 6 转换为 ES5 有几种不同的方法和工具可以选择。以下是其中两种常用的方法: 1. 使用 Babel 编译器:Babel 是一个非常受欢迎的 JavaScript 编译器,可以将 ES6(ES2015)代码转换为 ES5 代码。要将 Node.js 6 代码转换为 ES5,首先需要安装 Babel。在项目的根目录下,运行以下命令安装 Babel 及相关插件: ``` npm install --save-dev @babel/cli @babel/preset-env ``` 然后,在项目的根目录下创建一个名为 `.babelrc` 的文件,并在其中配置 Babel: ```json { "presets": ["@babel/preset-env"] } ``` 接下来,你可以使用 Babel 命令来编译你的 Node.js 6 代码: ``` npx babel src --out-dir lib ``` 其中,`src` 是存放 Node.js 6 代码的目录,`lib` 是存放转换后的 ES5 代码的目录。 2. 使用 TypeScript 编译器:如果你的 Node.js 6 代码已经使用了 TypeScript,则可以直接使用 TypeScript 编译器将其转换为 ES5 代码。要使用 TypeScript 编译器,首先需要在项目中安装 TypeScript: ``` npm install --save-dev typescript ``` 然后,在项目的根目录下创建一个名为 `tsconfig.json` 的文件,并在其中配置 TypeScript 编译选项: ```json { "compilerOptions": { "target": "es5", "outDir": "lib", "module": "commonjs", "strict": true }, "include": ["src"] } ``` 接下来,你可以使用 TypeScript 命令来编译你的 Node.js 6 代码: ``` npx tsc ``` 以上两种方法都可以将 Node.js 6 代码转换为 ES5 代码,使其能够在不支持 ES6 的环境中运行。根据你的具体需求和项目配置,选择适合的方法来进行转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值