Вы бы для начала почитали что эти страшные штуки вообще делают, а потом задавали какие-то более конкретные вопросы.
Вот вы пишете что-то на ES8 и используете
padStart(), который добавили прошлым летом.
Затем запускаете свой код в IE10 - не работает (кто-бы мог подумать!)
Берете свой код, прогоняете через бабель с указанием, чтобы была поддержка ие10
Бабель добавляет что-то типа этого// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
if (!String.prototype.padStart) {
String.prototype.padStart = function padStart(targetLength,padString) {
targetLength = targetLength>>0; //floor if number or convert non-number to 0;
padString = String(padString || ' ');
if (this.length > targetLength) {
return String(this);
}
else {
targetLength = targetLength-this.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
}
return padString.slice(0,targetLength) + String(this);
}
};
}
Это конечно упрощенный сценарий, но вся суть в том, чтобы переделать современный JS в код понятный для старых браузеров.
Точно так-же можно гуглить "что такое вебпак", "что такое typescript" и так далее.
Затем прикидываете нужна ли вам эта штука, или вы пока без нее.