适用于JavaScript的ECMAScript 2015(ES6)标准polyfills库?

时间:2015-10-21 21:59:39

标签: javascript ecmascript-6 polyfills ecmascript-2015

我已经找了isInteger测试来验证表单字段值,包括带有技巧的SO,例如:

num === parseInt(num)

我找到了为此功能提供polyfill的页面https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger(它包含在EC6规范中):

Number.isInteger = Number.isInteger || function(value) {
    return typeof value === "number" && 
       isFinite(value) && 
       Math.floor(value) === value;
};

这不仅是我在MDN上看到的第一个JS polyfill。

是否有任何社区支持的库包含并支持JS polyfill用于现代JS标准?

我在es6.js项目中找到webshim

bash# git clone https://github.com/aFarkas/webshim.git
bash# cd webshim

bash# grep -R isInteger
dev/shims/es6.js:761:  isInteger: function(value) {
dev/shims/es6.js:767:  return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;

但我担心这个库过于复杂(可能会对已经使用过的jQuery / Bootstrap / etc代码产生负面影响)并且不确定这个项目本身是如何健康的(有很多提交者,但也有很多开放的bug)。 / p>

请注意我{5}前从https://en.wikipedia.org/wiki/Polyfill学到的polyfill字。这就是为什么对于经验丰富的JS巫师来说,问题可能看起来很愚蠢。

1 个答案:

答案 0 :(得分:-1)

你听说过巴别塔吗?如果你进入es6那么你一定要去查找Babel。

本质上,Babel将您的es6代码转换为es5,以便旧版浏览器可以使用它。 Babel非常受欢迎,并且受到在Facebook工作的人的支持。

Babel还提供了一个polyfill https://babeljs.io/docs/usage/polyfill/,您可以通过执行npm install babel并在文件夹中找到polyfill来获得。