Ruslan_xDD, как уже сказал выше
Safort, то трансляторы парсят твой код, а затем преобразуют его в ES5/3. По такому же принципу работают TypeScript, CoffeeScript и т.д.
https://6to5.org/repl.html - тут можно поиграться, например,
function foo() {
var a = 1;
if (a) {
let a = 2;
let b = () => this;
}
}
Превратится в
function foo() {
var _this = this;
var a = 1;
if (a) {
var _a = 2;
var b = function () {
return _this;
};
}
}