ES6和JavaScript的关系以及ES6兼容性解决方案

ES6

ES6和JavaScript的关系

  • ECMA是“European Computer Manufacturers Association” 的缩写,中文称欧洲计算机制造联合会。这个组织的目标是评估,开发和认可电信和计算机标准
  • EAMA是标准,JavaScript是实现
    • 类似HTML5是标准,IE10,Chrome等都是实现
    • 目的是让所有前端脚本都实现ECMA
    • 目前只有JavaScript实现EAMA标准,ECMAScript 约等于 JS
  • ECMAScript简称EAMA或者ES(ES6)
  • 目前版本
    • 高级浏览器支持ES6

ECMA标准出台流程

ECMAScript是跨多个平台的许多厂商(包括浏览器厂商在内的各方组成)实施不断发展的标准。ES6(EAMAScript 2015)花费6年的时间敲定,是一个很大的发行版,新的年度发布流程被制定,以简化流程并更快的添加功能。ES9(ES2018)是目前的最新版本

接触ES6的意义

  • 对语法的改进,功能的增加
  • 使用Vue、Reat、小程序、Nodejs等都在用
  • ES6以上版本再等等

解决ES6兼容问题

  • IE10+、 Chrome、FireFox、移动端、NodeJS现在都支持
  • 兼容低版本浏览器
    • 在线转换(这种编译会加大页面渲染的时间)
    • 提前编译(建议使用这种方式,不影响浏览器的渲染时间)
    • 比较通用的工具方案有(babel,jsx,traceur,es6-shim等)

babel在线转换解决兼容性问题

安装:

npm  i babel-core
#在安装位置下找到node_modules\babel-core\lib\api\browser.js
#在页面引用browser.js文件即可实现在线转换页面的es6代码
<script src="browser.js"></script>
<script type="text/babel">
    var  fn=(v=>console.log('this is start'))
</script>

babel提前编译

安装:

npm  install babel-cli  -g   # 全局安装

#安装成功之后测试
babel -V

babel环境搭建

  • 新建一个目录

  • 进入目录,使用npm初始化项目

    • npm  init  |   npm  init  -y
      
  • 测试环境

    • babel-node
      
  • 这里的babel-nodebabel提供的编译工具,也可以执行js代码

    • babel-node  index.js
      
  • 在目录新建**.babelrc**文件(babel的配置文件)

    • # 输出内容到指定文件 文件不存在则创建
      echo .>.babelrc
      
    • // 配置文件内容
      {
              
              
         "presets":["es2015","stage-2"],//设置转码规则
         "plugins":["transform-runtime"] //设置插件
      }
      
  • 这里需要转成(ES2015),安装我们需要的库

    • npm install babel-core babel-preset-es2015 babel-plugin-transform-runtime babel-preset-stage-2 -save-dev
      
  • 打开项目的package.json文件,做如下修改:

    • "scripts":{
              
               
          "build":"babel src -w -d lib"  //编译整个src目录并将其输出到lib目录
      },
      

编译整个src目录并将其输出到lib目录。这里的src指的是需要转换的目录,lib指的是输出内容的存放目录,-w其实是**-watch**的意思,就是监听文件,实时编译输出

  • 新建src目录和lib目录,一定要新建,不然要报错,然后启动我们的babel工程:

    • npm  run  build
      

猜你喜欢

转载自blog.csdn.net/weixin_45753871/article/details/112007761