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 и найдя полифил в папке.