Если я открою консоль JS и напишу:
let foo;
и после:
let foo = "bar"
консоль покажет мне (правильно)
Uncaught SyntaxError: Identifier 'foo' has already been declared
Сейчас ... Иногда мне нужно внедрить мой код в существующий скрипт, и у меня нет инструмента, чтобы определить, определена ли уже переменная let.
Я пытаюсь использовать этот код, но есть очевидная проблема с областью действия JS илогика .... (закомментируйте код)
let foo; // Gloabl variable empty declare in a code far, far away
console.log(foo); // undefined
console.log(typeof foo === "undefined"); // test that determinate if condition is true
if(typeof foo === "undefined"){
let foo = "test";
console.log(foo); // return "test" this means that foo as a local scope only inside this if...
}
console.log(foo); // return undefined not test!
// and .. if I try to double declaration...
let foo = "bar"; //error!
так ... Как я могу предотвратить двойное объявление "let"?/ Как определить, если let var определена (объявлена?)
PS с "var" все работает нормально !!!