Чому можна оголошувати кілька змінних `const` з однаковим ім’ям всередині циклу?


pic

Ключове слово const у JavaScript використовується для оголошення змінних, значення яких повинні залишатися сталими, тобто їх не можна змінювати після первісного встановлення.

 // Оголошення однієї й тієї ж змінної `const` кілька разів у глобальній області недоступне і призводить до помилки  
 const tip = 100;  
 const tip = 200; // Помилка: Ідентифікатор 'tip' вже було оголошено

Однак ви можете мати кілька оголошень const з однаковим іменем всередині циклу.

 // Оголошення однієї й тієї ж змінної `const` кілька разів у циклі дозволене  
 for (let i = 0; i < 3; i++) {  
   const tip = i * 10;  
   console.log(tip); // Виведення: 0, 10, 20  
 }

У наведеному коді змінна const з іменем tip оголошується кілька разів.

Що тут відбувається? Чому це дозволено?

У JavaScript змінні, оголошені за допомогою const і let, мають блочну область видимості, що означає, що вони існують лише в межах блоку, в якому були оголошені.
Кожна ітерація циклу створює нову область видимості блоку, тому ви можете оголосити нову змінну const або let з однаковим ім'ям на кожній ітерації.

Однак, коли ви оголошуєте змінну const або let в глобальній області видимості (поза будь-якою функцією чи блоком), вона існує протягом усього сценарію. Якщо ви спробуєте оголосити ще одну змінну const або let з таким самим ім'ям у глобальній області, ви отримаєте помилку, оскільки намагаєтеся оголосити змінну знову в тій самій області видимості.


pic

Оригінально опубліковано на https://tahajiru.com.

Перекладено з: Why Can You Have Multiple Const Declarations with the Same Name Inside a Loop?

Leave a Reply

Your email address will not be published. Required fields are marked *