• es6-compact-table 名词备忘


    网址:http://kangax.github.io/compat-table/es6

    网站收录了各编译器对es6及其后版本的支持度,其中我对以下几个并不了解所为何物

    Traceur
    Babel 6 + core-js
    Babel 7 + core-js 2
    Babel 7 + core-js 3
    Closure 2018.11
    Type-Script + core-js 2
    Type-Script + core-js 3
    es6-shim
    Konq 4.14
    Echo JS
    XS6
    JXA
    Node >=6.5 <7
    Node >=8.10 <9
    Node >=10.13 <11
    DUK 1.8
    DUK 2.2
    JJS 1.8
    JJS 10
    GraalVM 1.0
    

    Traceur

    Traceur 是一个来自 Google 的 Javascript 编译器,通过它可以体验一些很新并且有趣的 Javascript 语言特性,这些多数是还没有被当前浏览器实现的 ECMAScript 标准或草案,比如:数组比较、类、模块、迭代器、方法参数默认值、Promise等。介绍说明

    Traceur 和 Babel 对比:与 Babel 功能基本相同,都提供了把新的 js 语言特性转化功能,依照文章开头的网站显示,Traceur 比较老牌, 所支持的新特性要少一些。

    code-js

    开源库 zloirock/core-js
    提供了es5、es6 的 polyfills,包括promises、symbols、collections、iterators、typed arrays、ECMAScript 7+ proposals、setImmediate 等等。
    如果使用了 babel-runtime、babel-plugin-transform-runtime 或者 babel-polyfill,你就间接的引入了 core-js 标准库

    有关于 core-js 2 与 3 有何区别,见 Changelog,core-js 3 主要是扩充了 Map,Set,Symbol 以及其他对象的方法,加入了 URL 对象。

    Babel 6 和 Babel 7 的区别

    相比前一版本,Babel 6最大的变化是更模块化,各种内置库都被分散到独立的模块;其次,让所有插件可选,这意味着Babel默认不会编译ES2015代码,并且所有的transformer完全独立;同时,为了减少配置的复杂性,引入了preset;最后,提升了性能。

    • Babel 6 引入了preset的概念,preset其实是一组plugins。
    • 我们常用的babel-preset-es2015包括了完整的ES2015特性,引入它即可编译ES2015代码到ES5。

    Babel 7 正式发布了(2018-06-20是@babel/core@^7.0.0-beta.51),相比 6 有非常多的更新,这里例举一些主要的,详情可以阅读官方博文。

    • deprecated Yearly Presets (如 babel-preset-es20xx),preset-env 代替
    • 最新更新的 TC39 Proposals
    • 重命名,@babel scope (防止被占用)

    es6-shim

    Shim 通常是一个代码库,它给旧环境(并不一定特指浏览器环境)带来的往往是全新的 api,而且这些 api 只能在这个环境当中运行。

    Polyfill 就是一系列的代码或者插件,它为开发者提供的技术特性,都是希望浏览器本就应该原生支持的,并且抹平了 api 之间的使用差异。

    并且从文章最顶部的网站来看, es6-shim 的支持度很低。

  • 相关阅读:
    P1342 请柬
    P1186 玛丽卡
    Scala 中下划线的用法
    IDEA2017 maven Spark HelloWorld项目(本地断点调试)
    Spark内存管理详解
    Spark基础知识
    scala基本语法
    分布式锁的一点理解
    Redis并发问题
    redis集群原理
  • 原文地址:https://www.cnblogs.com/everlose/p/12501260.html
Copyright © 2020-2023  润新知