Я ошибочно написал повторное объявление аргумента как const
в функции и вместо того, чтобы бросать SyntaxError: Identifier 'bar' has already been declared
, я закончил с ReferenceError: bar is not defined.
.
Что вызывает такое поведение? Это была не ожидаемая ошибка, и я оставил меня в замешательстве в течение нескольких минут.
Пример кода:
function foo(bar) {
try {
console.log(bar);
const bar = 123;
} catch(err) { console.log(err) }
}
foo(456);
Если я не завершу объявление в try/catch, я получу (что я считаю) ожидаемой ошибкой.