ES6分享

作者: MAYDAY77 | 来源:发表于2020-08-07 14:21 被阅读0次

    一、箭头函数和普通函数中的this区别

    普通函数中的this:

    1.this总是代表它的直接调用者谁调用了该方法,this就指向谁;

    2.在默认情况(非严格模式下,未使用 'use strict'),没找到直接调用者,则this指的是 window;

    3.在严格模式下,没有直接调用者的函数中的this是 undefined;

    4.使用call,apply,bind(ES5新增)绑定的,this指的是 绑定的对象。

    箭头函数中的this:

    1.箭头函数会捕获其所在上下文的 this 值,作为自己的 this 值,自己本身并没有this值;

    2.箭头函数的this永远指向其上下文的this,任何方法都改变不了其指向,如call(), bind(), apply()。

    箭头函数作为匿名函数,没有function关键字,是不能作为构造函数的,不能使用new

    二、项目中具体使用 Babel转码器

    babel可以将ES6代码转为ES5代码,然后在JavaScript环境中执行

    转码前 input.map(item => item + 1);

    转码后  input.map(function(item){
                     return item + 1;
                  })

    项目中的配置文件是.babelrc文件

    Babel默认只转换新的JavaScript句法,而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign,Object.entries)都不会转码。

    IE浏览器不支持,呵呵。

    ES6在Array对象上新增了Array.from方法。Babel就不会转码这个方法。如果想让这个方法运行,必须使用babel-polyfill,为当前环境提供一个垫片。

    安装命令如下。

    $ npm install --save babel-polyfill

    相关文章

      网友评论

          本文标题:ES6分享

          本文链接:https://www.haomeiwen.com/subject/xzjfdktx.html