ES6-Shim

ES6兼容JS引擎工具
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 浏览器/JS引擎
软件类型 开源软件
地区 不详
投 递 者 林铭
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ES6-Shim 提供兼容性垫片,使ES6能兼容于传统的JavaScript引擎。

兼容平台:

browser support

示例代码:

require('es6-shim');
var assert = require('assert');

assert.equal(true, 'abc'.startsWith('a'));
assert.equal(false, 'abc'.endsWith('a'));
assert.equal(true, 'john alice'.includes('john'));
assert.equal('123'.repeat(2), '123123');

assert.equal(false, NaN === NaN);
assert.equal(true, Object.is(NaN, NaN));
assert.equal(true, -0 === 0);
assert.equal(false, Object.is(-0, 0));

var result = Object.assign({ a: 1 }, { b: 2 });
assert.deepEqual(result, { a: 1, b: 2 });

assert.equal(true, isNaN('a'));
assert.equal(false, Number.isNaN('a'));
assert.equal(true, Number.isNaN(NaN));

assert.equal(true, isFinite('123'));
assert.equal(false, Number.isFinite('123'));
assert.equal(false, Number.isFinite(Infinity));

// Tests if value is a number, finite,
// >= -9007199254740992 && <= 9007199254740992 and floor(value) === value
assert.equal(false, Number.isInteger(2.4));

assert.equal(1, Math.sign(400));
assert.equal(0, Math.sign(0));
assert.equal(-1, Math.sign(-400));

var found = [5, 10, 15, 10].find(function (item) { return item / 2 === 5; });
assert.equal(10, found);

var foundIndex = [5, 10, 15, 10].findIndex(function (item) { return item / 2 === 5; });
assert.equal(1, foundIndex);

// Replacement for `{}` key-value storage.
// Keys can be anything.
var map = new Map([['Bob', 42], ['Foo', 'bar']]);
map.set('John', 25);
map.set('Alice', 400);
map.set(['meh'], 555);
assert.equal(undefined, map.get(['meh'])); // undefined because you need to use exactly the same object.
map.delete('Alice');
map.keys();
map.values();
assert.equal(4, map.size);

// Useful for storing unique items.
var set = new Set([0, 1]);
set.add(2);
set.add(5);
assert.equal(true, set.has(0));
assert.equal(true, set.has(1));
assert.equal(true, set.has(2));
assert.equal(false, set.has(4));
assert.equal(true, set.has(5));
set.delete(5);
assert.equal(false, set.has(5));

// Promises, see
// http://www.slideshare.net/domenicdenicola/callbacks-promises-and-coroutines-oh-my-the-evolution-of-asynchronicity-in-javascript
// https://github.com/petkaantonov/bluebird/#what-are-promises-and-why-should-i-use-them
Promise.resolve(5).then(function (value) {
  assert.equal(value, 5);
  if (value) throw new Error('whoops!');
  // do some stuff
  return anotherPromise();
}).catch(function (e) {
  assert.equal(e.message, 'whoops!');
  assert.equal(true, e instanceof Error);
  // any errors thrown asynchronously end up here
});
  • 一、ES6简介与特性 ​ ES6全称为:ECMAScript 6.0,也叫ES2015. ​ ES指的是JS的核心ECMAScript部分(除BOM+DOM外),我们之前学的是ECMAScrip5,数字6表示版本号。ES5版本在2009年成为标准,ES6虽然已经于2015年9月发布,但目前大部分浏览器均还在完善支持中,比如chrome浏览器支持度已经达到了99%以上。 ES6通常指的是ES6及ES

  • ES-Next: Esnext is similar to traceur, you can use command line to compile files. Install: npm install esnext -g Here's how to compile a single file an print it to stdout: esnext myfile.js   To compil

  • 服务器上启动项目报了polyfills.ts、'es5-shim'、'es6-shim'相关的错 [1m[31mERROR in ./src/polyfills.ts Module not found: Error: Can't resolve 'es5-shim' in '/root/.jenkins/workspace/Platform-Service-StaticResource/src'

  • 摘取的es5-shim/es6-shim Object.create var create = Object.create || function (prototype, properties) { var Prototype = function Prototype() {}; Prototype.prototype = prototype; var object = n

 相关资料
  • 部署到AWS时,我遇到以下错误 你知道这将如何解决吗? 这将工作,如果我指定的引擎在package.json

  • Cocos2d-x 带有一个命令行工具:cocos 这是一个跨平台的工具,你可以用它创建项目、运行项目、发布项目。命令行工具适用于所有 Cocos2d-x 支持的平台,包括:iOS、Android、Mac、Linux、Windows、Web。不用 IDE,只用命令行,你就能完成所有的工作! 工具配置 运行引擎源码根目录的 setup.py,这个脚本会配置一些环境变量,并将 cocos 命令添加到系

  • 本文向大家介绍Webpack4+Babel7+ES6兼容IE8的实现,包括了Webpack4+Babel7+ES6兼容IE8的实现的使用技巧和注意事项,需要的朋友参考一下 前阵子重构了一个挺有意思的项目,是一个基于浏览器环境的数据采集sdk。公司各个产品的前端页面中都嵌入了这个sdk,用于采集用户的行为数据,上传到公司的大数据平台,为后续的运营决策分析提供数据支撑。 笔者接手这个项目的时候,前任开

  • 我的机器上安装了节点,一切正常。在2019年制作的一个在线课程中,讲师使用的是早期版本的npm(v5.5.1),出于后续原因,建议所有人与他一起使用相同的版本。所以我降级到v5。5.1但是现在我几乎所有的命令都会出现同样的错误(不兼容)。我在这里读了一些类似问题的解决方案,甚至尝试了额外的步骤,但问题仍然存在。我从系统中卸载了node,重新启动了系统并重新安装了node,但npm的版本仍然是v5。

  • 我正在研究一个需要工作流/流程引擎的解决方案。我的工作流包含一些基于Java的进程(类)和一些Linux Shell脚本。流程不会是静态的,每个流程的执行取决于前一个流程的状态/结果,将有多条路径,路径将由前一个流程的状态确定。 我尝试查看jBPM,但没有找到合适的支持来调用shell脚本。请根据我的要求为我推荐一个合适的替代方案。 非常感谢。

  • 问题内容: 这是在我的Angular代码中正常工作的ES5函数: 我想将其转换为ES6箭头功能 但是它给出了错误 ES6箭头功能是否与Angular不兼容? 编辑:我想也许Angular不能推断出该名称,因此无法注入它,但随后我将其记录到控制台,并确实显示了它: 问题答案: 正确。您的AngularJS版本与使用$ injector的箭头功能不兼容。 这主要是因为AngularJS 1.4.6使用

  • 我在JRE 1.6上用Jersey 1.13写了几个REST服务。在本地一切运行正常,但是在我部署到GAE后,我得到了这个错误: 任何帮助将不胜感激。

  • 问题内容: 我想知道您(SO读者)使用Workflow Engines解决的特定问题,以及如果您不自己动手使用的库/框架。我还想知道何时工作流引擎不是最佳选择,以及您是否/如何选择更简单的东西,例如使用状态机的TaskList / WorkList / Task-Management类型应用程序。 问题: 您使用工作流引擎解决了哪些问题? 您使用了哪些库/框架? 什么时候像系统这样简单的状态机/任