ECMAScript 2015 (ES6) стандартная библиотека полизаполнений для JavaScript?

Я искал isInteger тест для проверки значения поля формы, включая SO, с трюками, такими как:

num === parseInt(num)

Я нашел страницу 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;
};

Это не только первый JS polyfill, который я вижу на MDN.

Существует ли какая-либо поддерживаемая сообществом библиотека, которая включает и поддерживает полифилы JS для современных стандартов 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) и не уверена, насколько сам этот проект здоров (есть много коммитеров, но также есть много открытых ошибок).

Обратите внимание, что polyfill Слово, которое я узнал 5 минут назад от https://en.wikipedia.org/wiki/Polyfill. Вот почему вопрос может показаться глупым для опытных волшебников JS.

1 ответ

Вы слышали о Вавилоне? Если вы в es6, то вам обязательно стоит поискать Babel.

По сути, Babel переносит ваш код es6 в es5, чтобы его могли использовать старые браузеры. Babel чрезвычайно популярен и поддерживается людьми, которые работают в Facebook.

Babel также предоставляет полифил https://babeljs.io/docs/usage/polyfill/ который вы можете получить, установив babel npm и найдя полифил в папке.

Другие вопросы по тегам