es6 转es5_es6转换es5

es6 转es5_es6转换es5为什么要es6转es5?答:es6代码在老版本的浏览器中无法执行。怎么将es6代码转为es5代码,让其在老版本的浏览器中执行?答:使用babel模块,babel是一个使用非常广泛的es6转换器,这就意味着我们可以将es6代码转为es5代码,从而在老版本的浏览器中执行。使用步骤:新建一个新的用来编写es6代码的文件夹,进入到该文件中,初始化一个项目npminit表示一步步通过配置来初始化一个项目npminit-y表示使用默认设置来快速初始化一个项目局部安装babel-cli

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

为什么要es6转es5?

答:es6代码在老版本的浏览器中无法执行。

怎么将es6代码转为es5代码,让其在老版本的浏览器中执行?

答:使用babel模块,babel是一个使用非常广泛的es6转换器,这就意味着我们可以将es6代码转为es5代码,从而在老版本的浏览器中执行。
使用步骤:

  1. 新建一个新的用来编写es6代码的文件夹,进入到该文件中,初始化一个项目

npm init 表示一步步通过配置来初始化一个项目
npm init -y 表示使用默认设置来快速初始化一个项目

  1. 局部安装babel-clibabel-preset-latest模块

npm install --save-dev babel-cli babel-preset-latest babel-cli是babel模块的一个命令行工具,babel-preset-latest是babel的转化规则

  1. 在文件目录下新建配置文件,名字为.babelrc,这是使用babel转化器的第一步设置
    {
      "presets":["latest"],
       "plugins": []
    }
  1. 使用命令进行转化

babel example.js 转码结果输出到控制台
babel a.js --out-file b.js –out-file 或 -o 参数指定输出文件
babel src --out-dir dist –out-dir 或 -d 参数指定输出目录

实例:

//转化之前为es6
let test = () => { 
   
    console.log("hello world");
}

经过babel-cli命令行工具和babel-preset-latest预设规则,转化后为如下带啊吗:

"use strict";
var test = function test() { 
   
    console.log("hello world");
};

注意点:所有 Babel 工具和模块的使用,都必须先写好.babelrc,即安装好babel-preset-latest并配置好.babelrc才能正常使用

但是babel转化器默认只会新的JavaScript句法,而不转换新的API,比如我们要学的IteratorGeneratorSetMapProxyReflectSymbolPromise等全局对象,以及定义在全局对象上的方法(比如Object.assign)都不会转码

举例来说,ES6 在Array对象上新增了Array.from方法。Babel 就不会转码这个方法。如果想让这个方法运行,可以使用core-js和regenerator-runtime(后者提供generator函数的转码),为当前环境提供一个垫片

实例:
未使用垫片时:

var arr = [1, 2, 3, 2];
var arr_new = Array.from(arr);
console.log(arr_new);

使用命令babel xxx.js,控制台输出的依旧和原来的一样
这个时候就要使用垫片了

使用步骤:

  1. 安装垫片

npm install --save-dev core-js regenerator-runtime

  1. 在需要转化的文件中加入这两句

require('core-js');require('regenerator-runtime');

  1. 接着使用babel命令转化即可
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189914.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GROUP BY和HAVING用法介绍

    GROUP BY和HAVING用法介绍一、groupby和having1、满足“SELECT子句中的列名必须为分组列或列函数”,因为SELECT有groupby中包含的列2、having必须和groupby一起用,且在groupby后面3、groupby、having、orderby的使用顺序:groupby、having、orderbySELECT*|字段列表[as别名]FROM表名[WHERE子句][GROUPBY子句][HAVING子句][ORDERBY子句][LIMIT…

    2022年6月18日
    20
  • 通过Adblock关闭网站上百度分享的方法「建议收藏」

    通过Adblock关闭网站上百度分享的方法「建议收藏」在七禾网站上,只要左键选中一段文字,就会蹦出个百度分享,导致针对选中文字的右键操作,比如qq浏览器中的收藏选中文字功能无法正常工作(原因是百度分享先弹出后抢了焦点,再点右键后选中的文字被取消选中了),试了各种浏览器设置方法都去不掉这个烦人的百度分享弹屏。看了网页代码,是嵌入的如下代码在作梗:<script>window._bd_share_config={…

    2022年10月8日
    3
  • linux 安装 RabbitMQ「建议收藏」

    下载ErlangRabbitMQ是由erlang语言编写的,所以在安装rabbitMQ之前需要安装Erlang.erlang下载地址:Downloads-Erlang/OTP这里下载23.3版本。下载rabbitMQ在rabbitMQ官网可以看到mq版本对应的erlang的版本。点击上述地址中的rabbitMQ安装指南,可以在里面下载安装包…

    2022年4月7日
    44
  • pytest接口自动化测试框架_pytest接口自动化框架

    pytest接口自动化测试框架_pytest接口自动化框架pytest接口自动化完整框架思维导图

    2022年7月29日
    6
  • 线程池拒绝策略详解[通俗易懂]

    线程池拒绝策略详解[通俗易懂]线程池拒绝策略详解JDK中已经预设了4种线程池拒绝策略,下面结合场景详细聊聊这些策略的使用场景,以及我们还能扩展哪些拒绝策略。池化设计思想池话设计应该不是一个新名词。我们常见的如java线程池、jdbc连接池、redis连接池等就是这类设计的代表实现。这种设计会初始预设资源,解决的问题就是抵消每次获取资源的消耗,如创建线程的开销,获取远程连接的开销等。就好比你去食堂打饭,打饭的大妈会先…

    2022年6月25日
    33
  • VUE(相关简介及初始)

    1.什么是vueVue是一个数据驱动页面的一个框架,基于MVVM模式,M指的是数据,V值得是视图,VM是视图模型,将数据绑定视图上(双向绑定)这个框架着重于VM部分2.VUE诞生的背景近几年来

    2022年3月29日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号