写在正文前,本来这一节的内容应该放在第二节更合适,因为当时就有同学问ES6的兼容性如何,如何在浏览器兼容ES6的特性,这节前端君会介绍一个抱砖引玉的操作案例。

为什么ES6会有兼容性问题?

由于广大用户使用的浏览器版本在发布的时候也许早于ES6的定稿和发布,而到了今天,我们在编程中如果使用了ES6的新特性,浏览器若没有更新版本,或者新版本中没有对ES6的特性进行兼容,那么浏览器肯定无法识别我们的ES6代码,好比浏览器根本看不懂我写的let和const是什么东西?只能报错了。这就是浏览器对ES6的兼容性问题。

好消息

哪里有灾难,哪里就有勇士和救兵,针对ES6的兼容性问题,很多团队为此开发出了多种语法解析转换工具,把我们写的ES6语法转换成ES5,相当于在ES6和浏览器之间做了一个翻译官。比较通用的工具方案有babel,jsx,traceur,es6-shim等。

此外,浏览器自身也加快速度兼容ES6的新特性,其中对ES6新特性最友好的是Chrome和Firefox浏览器。

各大转换工具、javascript解析引擎对ES6的支持程度情况,可以参查看这个地址:

    'http://kangax.github.io/compat-table/es6/'

坏消息

即使浏览器对ES6新特性开始渐渐支持,但是这还需要很长一段时间,我们不能百分百依赖浏览器本身对ES6的支持度来开发。

虽然出现了各种转换工具,但是到目前为止,还没有一款工具能百分百将ES6的新特性完美地转换成ES5,因为在ES6新增的内容中,存在一些无法在ES5中找到与之匹配的语法,所以不建议在生产环境中使用支持度较低的新特性,后续的教程章节中介绍的新特性前端君也会特意提醒它的兼容性。

学习热情不减

但是,这并不影响我们学习ES6的热情,因为ES6是未来的标准,浏览器支持只是迟早的事。

本节介绍其中一个转换工具的安装和使用情况,安装使用以简单为主,主要是让新手和刚接触的同学对转换工具有感性的认知。再次表明,即使使用了转换工具,我们还是不建议在生产环境大量地使用ES6的特性。

使用转换工具babel

我们选择Babel作为学习和讲解的工具,以及最多人使用的windows作为操作系统。

接下来的前端君建议你打开电脑,跟着教程一步步操作。(没有也不要紧,先收藏此文)

步骤1:制作ES6文件

新建一个html文件,取名为:ES6.html,加上含有ES6新特性的代码,比如:

    <script>        const Name = '张三';//使用新增的关键字:const声明常量        alert(Name);    </script>

步骤2:测试const兼容性

我们在chrome浏览器(版本不能太低)运行ES6.html,会正常运行,弹出“张三”。

接下来我们运行在IE 9,会看到这样的情况:

IE 9浏览器会提示我们第9行出现一个语法错误,相当于告诉我们它看不懂const是什么鬼,但是学过ES6入门系列第三节的我们都知道const是ES6的新增关键字,用于声明一个常量。这个时候我们知道const在IE9浏览器出现了兼容性问题了。

下面我们开始用Babel来兼容它。

我们可以使用npm来安装babel,npm是随同Nodejs一起安装的包管理工具,新版的nodejs已经继承了npm,我们只要安装nodejs即可。对于nodejs的安装,不在本节的学习范围,我就不作展开说明了..........才怪。(说好的简单易懂,前端君怎么会半途掉链子)

步骤3:安装node

来,没安装过的node的同学,我们来一起安装:

node官网(下载安装包.msi):https://nodejs.org/

(nodejs官网首页截图)

我们点击v4.4.5LTS进行下载,下载后找到node-v4.4.5-x64.msi双击运行,点击next(下一步)安装即可。期间你可以自定义选择安装的位置,默认是C:\ProgramFiles\。最后一步点击 Finish(完成)按钮退出安装向导。

步骤4:检测node是否安装成功

安装结束后,我们检测是否安装成功:

点击 “开始”-> “运行”-> 输入“cmd”-> 进入命令提示符窗口,输入“node --version”来检测当前node的版本。

出现:v4.4.5就表示安装成功,因为我们下载的就是v4.4.5LTS。

步骤5:用npm安装babel

好了,node安装好了,也就是它集成的npm包管理工具也安装好了,接下来,我们利用npm来安装我们最想要的babel。

同样我们启动命令提示符窗口并且输入:npm install babel-core@5,然后回车,这里要稍等片刻:

看到上面的界面就是表示你安装babel成功,你会在电脑盘中找到这样的目录:C:\Users\Administrator\node_modules\babel-core,打开后你会看到:

在这个目录里面我们找到babel的浏览器版本browser.js(未压缩版)和browser.min.js(压缩版)。

步骤6:使用babel

然后我们将这个文件使用在我们的ES6.html中。

    <script src="browser.min.js"></script>    <script type="text/babel">        const Name = '张三';//使用新增的关键字:const声明常量        alert(Name);    </script>

我们把browser.min.js引入(文件位置的路径要确保正确)。并且设置第二个script标签的type为”text/babel”。

步骤7:让const运行在IE9浏览器上

然后我们再在IE9浏览器上运行一下:

这个时候IE9能正常运行我们的ES6新特性了,也就是babel转换起作用了,讲const转换成IE9能执行的代码了。

这节内容操作教学的比较多,属于很干的干货,很多东西没有展开讲解,比如:node是什么?命令提示符怎么操作等问题,对于刚刚接触编程的新手来说,如果看不懂或者很多不理解也没关系,不会阻碍后面章节的学习,因为你可以使用Chrome或者Firefox浏览器进行学习和练习,在这两款浏览器上可以执行大部分的ES6新特性,不需要使用类似babel的转换工具。

这一节的讲解只是作为一个学习的入门案例,起到抛砖引玉的作用,让新手们能对ES6的兼容问题和babel转换工具有个感性认知,并没有覆盖所有兼容方案的介绍,以后的开发中我们一定会发现更多关于ES6特性的坑,也会找到更多相对应的解决办法。填上这些坑,就是进步的表现。

本节总结

总结:目前,浏览器和转换工具并没有百分百支持ES6的全部新特性,但并不影响大家对ES6的学习热情,因为这是未来的行业标准,前端开发者必须掌握的技能;而今天介绍的babel就是目前对 ES6 的支持程度较高,使用广泛的ES6转码器。

第四节:教你如何快速让浏览器兼容ES6特性相关推荐

  1. 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...

    第一章 Python基础 第三节 列表简介 列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中的元素包括在方括号([])中,每个元素之间用逗号分割.列表是可变的数据类型, ...

  2. 星期三,今天早上上了四节JS课程,下午听健康讲座,晚上装系统

    星期三,今天早上上了四节JS课程,下午听健康讲座,晚上装系统.我想说装系统是最浪费时间的,以前大一的时候,有一段时间喜欢上装系统,我去有时候一个系统装了两三天,因为有很多问题. ~ 后面就不研究了,昨 ...

  3. 三菱四节传送带控制梯形图_【毕业设计】三菱plc(论文)基于PLC的传送带的控制系统设计毕业设计...

    点击标题上方"微Life梦Heart阅读",关注. 毕业设计232 摘  要[快速浏览摘要]本文介绍了PLC在四节传送带控制系统中的应用,同时也详细地叙述了系统中相关控制项目的设计 ...

  4. pq分解法潮流计算的matlab,第四节PQ分解法潮流计算

    <第四节PQ分解法潮流计算>由会员分享,可在线阅读,更多相关<第四节PQ分解法潮流计算(17页珍藏版)>请在人人文库网上搜索. 1.第四节 PQ分解法潮流计算一 .PQ分解法的 ...

  5. 四节传送带plc梯形图_基于PLC的四节传送带设计.ppt

    基于PLC的四节传送带设计 2015 基于PLC的四节传送带设计 作者: 研究背景与研究意义 跟着科学技术的快速飞跃,不管是在日常生活中还是在工农业,PLC都拥有十分广泛的使用PLC的优点是不言而喻的 ...

  6. 第七章:小朱笔记hadoop之源码分析-hdfs分析 第四节:namenode-ReplicationMonitor

    第四节:namenode分析 4.3 namenode 副本监控分析ReplicationMonitor ReplicationMonitor主要有两个作用: (1)负责为副本不足的数据块选择sour ...

  7. 鸿蒙系统智能电视用时间长了会不会卡,智能电视越用越卡怎么办?四招教你解决电视卡顿...

    原标题:智能电视越用越卡怎么办?四招教你解决电视卡顿 新买的电视总是顺畅无比,哪哪都喜欢,但用了一段时间后,大家都会遇到同一个问题:怎么越来越卡了?没有刚买的时候顺畅? 造成这种现象的原因也是多方面的 ...

  8. 点阵图像与矢量图像的计算机记录原理,第二章像素地概念,分辨率地概念,点阵及矢量图象地特点。第四节:图像格式地选择.docx...

    实用标准文案 实用标准文案 精彩文档 精彩文档 第二章 像素的概念,分辨率的概念,点阵及矢量图象的特点.第四节:图像格 式的选择 图像格式,矢量,图片,格式,jpg 从上面点阵与矢量两者的对比中,似乎 ...

  9. 腐烂国度2怎么学计算机知识,腐烂国度2操作方法详解 教你如何快速掌握操作方法...

    腐烂国度2操作方法详解 教你如何快速掌握操作方法 很多小伙伴买了腐烂国度2不知道怎么玩,刚上手连操作按键在哪都不知道.下面小编就为大家带来了腐烂国度2操作方法详解 教你如何快速掌握操作方法. 基本操作 ...

最新文章

  1. 资源|深度学习注意力机制TensorFlow 使用教程
  2. retinaface 记录
  3. 计算机基础教案(XP操作系统)
  4. 在PPT中插入flash动画和影片
  5. MyBatis ResultMap(2)
  6. 计算机硬件在线修复,计算机硬件维修
  7. 用Python标准库turtle画一只老虎,祝您新年虎虎生威,大吉大利
  8. mac下的secureCRT.8的设置
  9. 10-2-文章分页展示
  10. jetson 安装atp-get install qt时出现 unable to locate 或者dependencies unmet的报错
  11. Linux——CMake更新和安装
  12. ARM9学习笔记之——SDRAM实验
  13. 为什么房间的 Wi-Fi 信号这么差
  14. 图:出场顺序号码随机抽取及公开展示,并行随机抽取多个题目号码及公开展示-软件原型设计
  15. C语言求1000后面有多少个0,c语言题目计算1000!的末尾有多少个零
  16. 软件项目管理随谈(2)——项目合同问题
  17. 坤坤音效键盘(Python实现)
  18. jsp+css实现图片自动轮换
  19. 协成zookeeper
  20. nuxt.js框架使用vue-waterfall-easy插件如何引入--语法引用

热门文章

  1. 计算机操作系统原理精品课程,计算机操作系统原理.ppt
  2. mac android屏幕演示,如何在Mac上录制Android设备的屏幕 | MOS86
  3. 面向大数据处理应用的广域存算协同调度系统
  4. 征文通知:第三届(2016)科学数据大会——科学数据与创新发展
  5. 【操作系统】Reboot
  6. 【OJ】洛谷分支结构题单题解锦集
  7. 【C语言】编写一个简单的学生成绩管理系统
  8. Python的变量名、数据类型和简单运算、条件语句,循环及练习——02
  9. windows7系统配置maven环境
  10. web前端项目详解:OPPO首页进度条特效(定时轮播)