Это ничем не отличается от объявления одной и той же функции дважды
function foo() {
console.log("first");
}
function foo() {
console.log("second");
}
foo(); // prints "second"
Что на каком-то уровне ничем не отличается от этого
let bar;
bar = 1;
bar = 2;
bar
теперь 2
.
Вы можетеизбежать этого, используя другой синтаксис
const foo = () => {
console.log("first");
};
const foo = () => {
console.log("second");
};
В этом случае вы получите ошибку
Uncaught SyntaxError: Identifier 'foo' has already been declared
и, похоже, работает даже для сценариев
<script>
const foo = () => {
console.log("first");
};
</script>
<script>
const foo = () => {
console.log("second");
};
</script>