You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/05-global-object/article.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
2
2
# Глобальний об’єкт
3
3
4
-
Глобальний об’єкт надає змінні та функції, доступні в будь-якому місці програми. За замовчуванням ті, які вбудовані в мову або середовище.
4
+
Глобальний об'єкт надає нам змінні та функції, які доступні в будь-якому місці програми. Типово це ті, які вбудовані в мову або середовище.
5
5
6
6
У браузері він має назву `window`, у Node.js -- `global`, для інших середовищ він може мати іншу назву.
7
7
@@ -25,7 +25,7 @@ var gVar = 5;
25
25
alert(window.gVar); // 5 (змінна стала властивістю глобального об’єкта)
26
26
```
27
27
28
-
Такий же ефект мають оголошення функцій (оператори з ключовим словом`function`у потоці основного коду, а не функціональні вирази).
28
+
Так само стається з оголошеними функціями (function declaration). Тобто з використанням слова`function`в основному потоці коду, а не як в функціональних виразах.
29
29
30
30
Будь ласка, не покладайтесь на це! Така поведінка існує з міркувань сумісності. Сучасні скрипти використовують [JavaScript модулі](info:modules), де такого не відбувається
31
31
@@ -51,7 +51,7 @@ window.currentUser = {
51
51
alert(currentUser.name); // John
52
52
53
53
// або, якщо ми маємо локальну змінну з ім’ям "currentUser"
54
-
// отримаймо явно з window (безпечно!)
54
+
// отримаймо її з window безпосередньо (так безпечніше!)
55
55
alert(window.currentUser.name); // John
56
56
```
57
57
@@ -61,14 +61,14 @@ alert(window.currentUser.name); // John
61
61
62
62
Ми використовуємо глобальний об’єкт для тестування підтримки сучасних мовних функцій браузером.
63
63
64
-
Наприклад, перевірте, чи існує вбудований об’єкт `Promise` (його немає у дуже старих браузерах):
64
+
Наприклад, для перевірки чи існує вбудований об’єкт `Promise` (його немає у дуже старих браузерах):
65
65
```js run
66
66
if (!window.Promise) {
67
67
alert("Твій браузер застарів!");
68
68
}
69
69
```
70
70
71
-
Якщо його немає (побачимо повідомлення: "Твій браузер застарів!"), ми можемо створити «поліфіли», щоб додати підтримку цього об’єкту. Додати функції, які не підтримуються середовищем, але існують у сучасному стандарті.
71
+
Якщо його немає (побачимо повідомлення: "Твій браузер застарів!"), то ми можемо створити "поліфіли", щоб додати підтримку цього об’єкту. Тобто щоб додати функції, які не підтримуються середовищем, але існують у сучасному стандарті.
72
72
73
73
```js run
74
74
if (!window.Promise) {
@@ -84,6 +84,6 @@ if (!window.Promise) {
84
84
- Глобальний об’єкт має універсальну назву `globalThis`.
85
85
86
86
... Але частіше згадуються специфічні назви середовища "старої школи", такі як `window` (браузер) та `global` (Node.js).
87
-
- Ми повинні зберігати значення у глобальному об’єкті, лише якщо вони дійсно глобальні для нашого проєкту. І тримати їх кількість мінімальною.
87
+
- Ми повинні зберігати значення у глобальному об’єкті, лише якщо вони дійсно глобальні для нашого проєкту. І старатись писати код так, щоб таких значень було якомога менше.
88
88
- В браузерах, якщо ми не використовуємо [модулі](info:modules), глобальні функції та змінні, оголошені за допомогою `var`, стають властивістю глобального об’єкта.
89
89
- Для того, щоб код був простішим і в майбутньому його легше було підтримувати, слід звертатися до властивостей глобального об’єкта безпосередньо, через `window.x`.
0 commit comments