J'ai écrit par erreur une re-déclaration d'un argument en tant que const
dans une fonction et au lieu de lancer SyntaxError: Identifier 'bar' has already been declared
Je me suis retrouvé avec ReferenceError: bar is not defined.
.
Quelle est la cause de ce comportement ? Ce n'était pas l'erreur attendue, et cela m'a laissé perplexe pendant quelques minutes.
Exemple de code :
function foo(bar) {
try {
console.log(bar);
const bar = 123;
} catch(err) { console.log(err) }
}
foo(456);
Si je n'englobe pas la déclaration dans un try/catch, j'obtiens (ce que je crois être) l'erreur attendue.