一、兼容情况

说到ECMAScript6,顺便提一下ECMAScript5,先看一下ES5的兼容情况。ES5浏览器支持情况:
Opera 11.60;Internet Explorer 9*;Firefox 4;Safari 5.1**;Chrome 13
* IE9不支持严格模式 — IE10 添加
** Safari 5.1 仍不支持 Function.prototype.bind, 尽管Function.prototype.bind现在已经被

Webkit所支持。

具体ES5、ES6各浏览器支持情况可以查看
ECMAScript5:http://kangax.github.io/compat-table/es5/
ECMAScript6:http://kangax.github.io/compat-table/es6/

二、兼容方法

针对ES6的兼容性问题,很多团队为此开发出了多种语法解析转换工具,把ES6语法转换成ES5。

比较通用的工具方案有babel,traceur,jsx,es6-shim等。
此外,浏览器自身也加快速度兼容ES6的新特性,其中对ES6新特性最友好的是Chrome和Firefox

浏览器。在使用ES6时,先不用引入任何东西,去测试,因为现在浏览器已经支持部分ES6功能,有的

不需要转码,转码反而错误。
我们用下面的代码去测试浏览器是否兼容ES6语法const
<script>
const Name = '张三';//使用新增的关键字:const声明常量
alert(Name);
</script>

正常运行,会弹出“张三”,如果报错我们就知道是浏览器出现了兼容问题。当浏览器不支持

ES6时,再用Babel和Traceur对ES6进行转码。

三、使用Babel来兼容

使用npm来安装babel,npm是和Nodejs一起安装的包管理工具,新版的nodejs已经继承了npm,我

们只要安装nodejs即可。在node官网下载后缀为msi的最新安装包,下载后找到文件双击运行,点击下

一步安装即可,期间可以自定义选择安装的位置,默认是C:\ProgramFiles\。启动命令提示符窗口,

输入“node --version”来检测当前node的版本,当有版本号显示说明Node成功安装。
下面我们用npm安装babel,启动命令提示符窗口并且输入:npm install babel-core@5,然后回

车,安装成功后,打开目录:C:\Users\Administrator\node_modules\babel-core,在这个目录里面

我们找到babel的浏览器版本browser.js(未压缩版)和browser.min.js(压缩版)。把browser.min.js

引入(文件位置的路径要确保正确)。并且设置第二个script标签的type为”text/babel”。
<script src="browser.min.js"></script>
<script type="text/babel">
const Name = '张三';
alert(Name);
</script>

四、使用Traceur转码器直接插入网页的方法来转码ES6

在网页头部加载Traceur库文件。
<script src="https://google.github.io/traceur-compiler/bin/traceur.js"></script>
<script src="https://google.github.io/traceur-compiler/bin/BrowserSystem.js"></script>
<script src="https://google.github.io/traceur-compiler/src/bootstrap.js"></script>
<script type="module">
const Name = '张三';
alert(Name);
</script>

1.traceur:是由Google出的编译器,可以将ES5编译成ES6
2.bootstrap:是一个引导程序(与响应式的bootstrap不同)
3.需要将traceur.js和bootstrap.js下载下来,引入到当前文件中即可
4.最后的script标签的type属性的值是module,而不是text/javascript。这是Traceur编译器识别

ES6代码的标志,编译器会自动将所有type=module的代码编译为ES5,然后再交给浏览器执行。

五、另外还有Babel转码器的其他使用方法,Traceur的命令行转换方法和Node.js环境的用法,这里的

方法只是作为一个学习的入门案例,起到抛砖引玉的作用,让新手们能对ES6的兼容问题和转换工具

有个认识,并没有覆盖所有兼容方案的介绍,希望大家随着对ES6越来越深入学习,对转换工具的掌

握也越来越全面和熟练。

简单搭建ES6的环境的更多相关文章

  1. 搭建ES6运行环境

    当ES5还没有完全普及时,ES6就接踵而来了,2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015,我们也简称它为ES6或ES2015.在发布之后的将近一年内, ...

  2. 为何要搭建ES6开发环境,如何搭建ES6开发环境?

    1.ES6需要搭建开发环境,原因是现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6语法的,这就需要我们把ES6的语法自动转变成ES5的语法.   2.开始搭建环境   ...

  3. docker的简单搭建(java/tomcat 环境)

    1.一副图简单了解下docker的布局,它是虚拟的,docker分为私服.镜像.容器三个模块 一般从私服pull镜像,镜像run一个容器,我们把容器作为一个虚拟服务,里面可以独立运行进程有独立的内网I ...

  4. 轻松搭建ES6开发环境

    首先,你要自行查阅什么是ES6和ES5.javascript有什么关系,为什么要编译ES6.废话不多说,just go! 第一步:创建项目并让它成为npm可以管理的仓库. 新建一个项目,名字假设为te ...

  5. 构建前端第8篇之---Webstom搭建ES6运行环境

    张艳涛 写于2021-1-22 一.在有webstorm和node.js前提下,安装全局的babel npm install babel-cli babel-eslint -g 二.在terminal ...

  6. webstorm 搭建es6开发环境

    本文转自:http://www.jianshu.com/p/26601581e152 1:新建一个Empty Project项目es6 ,然后在src目录下新建了一个es.js: 2:打开设置pref ...

  7. 前端 - 使用gulp搭建es6运行环境

    1.创建一个项目目录2.全局安装Traceur,在控制台输入 npm install -g traceur3.打开项目目录,安装gulp以及gulp-traceur插件 npm install -g ...

  8. 搭建ES6开发环境

    https://github.com/IOJINDD/ES6-dev 在gulpfile最后一行加上: gulp.task('default', ['compile-es6', 'pack-js', ...

  9. es6开发环境搭建,babel 将es6转化成es5

    工欲善其事,必先利其器.所以我们第1节就是搭建一个基本的ES6开发环境.现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6的语法,这就需要我们把ES6的语法自动的转变成E ...

随机推荐

  1. python通过webservice接口实现配置下发

    项目上要开发一个小工具,通过webservice接口实现配置下发,考虑到python的第三方库对soap的良好支持,果断决定用python来完成这一使命. Python的支持webservice的第三 ...

  2. 41.Linux应用调试-修改内核来打印用户态的oops

    1.在之前第36章里,我们学习了通过驱动的oops定位错误代码行 第36章的oops代码如下所示: Unable to handle kernel paging request at //无法处理内核 ...

  3. Java开发小技巧(一)

    前言 相信许多程序员在看别人写的代码的时候,会有怀疑人生的感想,面对一堆天书一样的代码,很难摸清作者的思路,最后选择了重构,如果你认同上面这个作法,说明了两个问题:要么原来的开发者技术菜.要么你技术菜 ...

  4. 怎样解决jsp:include标签在包括html文件时遇到的乱码问题

    在一个JSP页面中,经常须要包括还有一个文件,JSP为我们提供了jsp:include标签能够完毕这个功能,比方:<jsp:include page="some.jsp"&g ...

  5. 002Java概述

    1Sun(Stanford University Network )公司1995年推出的高级编程语言 2.面向Internet的编程语言 3.已经成为web应用程序的首选开发语言 4.完全面向对象简单 ...

  6. Material使用02 图标MdIconModule、矢量图作为图标使用及改进

    1 MdIconModule模块的使用 1.1 在需要用到的模块中引入Material图标模块 import { BrowserModule } from '@angular/platform-bro ...

  7. 「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)

    一.MYSQL储存过程简介(技术文): 储存过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时 ...

  8. dubbo2.5.6从下载到编译成功并且部署成功过程

    本文基于dubbo2.5.6版本 原文链接:http://www.cnblogs.com/zhuwenjoyce/       1,下载dubbo 首先从 github 下载源代码并阅读 readme ...

  9. Html转JSP样式变型问题解决

    一.问题描述 在我没将写好的 html 页面转变为 java web 中的 JSP 页面时.有时会发现,我们将 css .js 都引入到了页面中.当样式和我们想象的不一样,那么我们就要去解决这个问题. ...

  10. SAP RFC介绍:关于sRFC,aRFC,tRFC,qRFC和bgRFC

    大概八月份的时候做过一个有关两个SAP系统的财务集成的项目,使用到了RFC(Remote Function Call)技术.因为之前有着医疗-CRM相关接口开发的经验,以为自己对RFC很熟悉了,做起来 ...