Пояснення до глобальних змінних у JavaScript

Глобальні змінні оголошуються поза функцією для доступності у всій програмі, тоді як локальні змінні зберігаються всередині функції, використовуючи varдля використання лише в межах області дії цієї функції. Якщо ви оголосите змінну без використання var, навіть якщо вона знаходиться всередині функції, вона все одно буде розглядатися як глобальна:

var x = 5; // global function someThing(y) { var z = x + y; console.log(z); } function someThing(y) { x = 5; // still global! var z = x + y; console.log(z); } function someThing(y) { var x = 5; // local var z = x + y; console.log(z); }

Глобальна змінна також є об'єктом поточної області дії, наприклад, вікном браузера:

var dog = “Fluffy”; console.log(dog); // Fluffy; var dog = “Fluffy”; console.log(window.dog); // Fluffy

Це найкраща практика мінімізувати глобальні змінні. Оскільки до змінної можна отримати доступ будь-де в програмі, вони можуть спричинити дивну поведінку.

Список літератури:

  • var -Javascript | MDN
  • Ви не знаєте JavaScript: Сфера застосування та закриття

Яка різниця між глобальним var і window.variable в javascript?

Сфера дії змінних JavaScript є або глобальною, або локальною. Глобальні змінні оголошуються ЗОВНІШНЬО функції, і її значення доступне / змінюється у всій програмі.

Вам ЗАВЖДИ слід використовувати var, щоб оголосити свої змінні (робити локально), інакше він буде встановлений ГЛОБАЛЬНО

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

(function(){ var myVar = true; })();

Більше інформації:

  • Візуальний посібник з визначень змінних і сфери використання JavaScript
  • Вступ до визначень змінних JavaScript та підняття