首页 > 其他分享 >ES6-Babel

ES6-Babel

时间:2023-02-12 15:34:56浏览次数:37  
标签:function ES6 name Babel age 编译

一。基础认知

babel是js编译器,将新版本js代码转换成大多数浏览器支持的es5,es3代码

浏览器其实也不认识require函数,bable配合webpack解决模块的问题;

主要编译的是语法,es6新增api并不编译,因为本身就没有怎么转,不像箭头函数是语法可以换个语法形式,babel本身默认转不了,所以要借助模块(模块里实现了这个promise对象,实现了api),然后引进来,老版本浏览器也就有这个功能了,

模块语法指的是import export之类的;

    <script>
      // 1.认识 Babel
      // 官网:https://babeljs.io/
      // 在线编译:https://babeljs.io/repl

      // Babel 是 JavaScript 的编译器,用来将 ES6 的代码,转换成 ES6 之前的代码

      // 2.使用 Babel
      // ES6
      let name = 'Alex';
      const age = 18;

      const add = (x, y) => x + y;

      // Set Map

      new Promise((resolve, reject) => {
        resolve('成功');
      }).then(value => {
        console.log(value);
      });

      Array.from([1, 2]);

      class Person {
        constructor(name, age) {
          Object.assign(this, { name, age });
        }
      }
      new Person('Alex', 18);

      import './index.js';

      // 使用 Babel 编译后
      ('use strict');

      require('./index.js');

      function _instanceof(left, right) {
        if (
          right != null &&
          typeof Symbol !== 'undefined' &&
          right[Symbol.hasInstance]
        ) {
          return !!right[Symbol.hasInstance](left);
        } else {
          return left instanceof right;
        }
      }

      function _classCallCheck(instance, Constructor) {
        if (!_instanceof(instance, Constructor)) {
          throw new TypeError('Cannot call a class as a function');
        }
      }

      var name = 'Alex';
      var age = 18;

      var add = function add(x, y) {
        return x + y;
      };

      new Promise(function (resolve, reject) {
        resolve('成功');
      }).then(function (value) {
        console.log(value);
      });
      Array.from([1, 2]);

      var Person = function Person(name, age) {
        _classCallCheck(this, Person);

        Object.assign(this, {
          name: name,
          age: age
        });
      };

      new Person('Alex', 18);

      // 3.解释编译结果
      // Babel 本身可以编译 ES6 的大部分语法,比如 let、const、箭头函数、类
      // 但是对于 ES6 新增的 API,比如 Set、Map、Promise 等全局对象,以及一些定义在全局对象上的方法(比如 Object.assign/Array.from)都不能直接编译,需要借助其它的模块
      // Babel 一般需要配合 Webpack 来编译模块语法
    </script>

二。babel的使用方式

把这些代码输入到命令行工具即可;提前安装node;

标签:function,ES6,name,Babel,age,编译
From: https://www.cnblogs.com/zhoushangquan/p/17113783.html

相关文章

  • Vue课程22-使用babel-loader处理高级的js语法
        //导入jqueryimport$from'jquery'//导入图片文件importlogofrom"./logo.jpg"//给img标签的src动态赋值$('.box').attr('src',logo)//定义jquery的入口import......
  • 基于AST的babel库实现js反混淆还原基础案例荟萃
    基本概念AST简介AST全称AbstractSyntaxTree,即抽象语法树,简称语法树(Syntaxtree),树上的每个节点都表示源代码中的一种结构。JavaScript领域常用的AST解析库有babel、esp......
  • ES6块级作用域let声明和const声明以及与var之间的区别
    一、ES6块级作用域let声明块级声明用于声明在指定作用域之外无法访问的变量,存在于:①函数内部②块内(字符{和}之间的区域)禁止重声明(1)如果在作用域由已经存在某个标......
  • gulp-babel没有将ES6转为ES5,
    使用gulp-babel转换ES6到ES5,然后用uglify对代码压缩,gulpfile中的代码片段:gulp.task('default', () =>    gulp.src('src/app.js')        .pipe(babel()......
  • ES6的Set详解
    数组去重letarr=[1,2,3,4,5,3,2]//数组去重//方法一letnewArr=[newSet(arr)]console.log(newArr);//方法二letnewArr2=Arr......
  • javaScript ES6 - call,apply,bind 修改this指向,开启严格模式
    1.call与applycall与apply都是执行一次修改的方法,不过apply的第二个参数为数组格式//构造函数functionHuman(id,name){this.id=id;this.name=name;}//方法f......
  • ES6-moudle
    一。基础认知前面模拟模块是用立即执行的匿名函数,需要把某些通过window暴露出去,所以还是不能消除全局变量module模块系统需要服务器环境才能正常执行这样打开文件就可......
  • JavaScript ES6 - 目录
    javaScript高级语法-class创建对象,继承extends,super,类中this指向问题javaScript高级语法-构造函数创建对象,原型对象prototype,对象原型_proto_,原型对象中的constr......
  • ES6语法介绍
    1.为什么学习ES6ES6法人版本变动内容最多,具有里程碑意义ES6加入许多新的语法特性,编程实现更简单、高效ES6是前端发展趋势,就业必备技能 2.变量声明以及声明特性1.变......
  • 开头与结尾的判断 ES6 2302027
    判断是否以某结尾判断是否以某开头......