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
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@
10
10
```js run
11
11
alert("Привет");
12
12
13
-
// тоже самое что и
13
+
// тоже самое, что и
14
14
window.alert("Привет");
15
15
```
16
16
@@ -30,7 +30,7 @@ window.alert("Привет");
30
30
window.open('http://google.com'); // открывает новое окно браузера
31
31
```
32
32
33
-
2. Если переменные, объявленные с помощью `var` или декларации функций находятся на верхнем уровне программы, то они автоматически становятся свойствами `window`.
33
+
2. Если переменные, объявленные с помощью `var` или функции типа Function Declaration находятся на верхнем уровне программы, то они автоматически становятся свойствами `window`.
34
34
35
35
Например:
36
36
```js untrusted run no-strict refresh
@@ -51,7 +51,7 @@ window.alert("Привет");
51
51
alert(window.x); // undefined ("let" не создаёт свойства window)
52
52
```
53
53
54
-
3. Кроме того, все скрипты имеют общую глобальную область видимости, поэтому переменные, объявленные в одном теге `<script>` становятся доступными в других:
54
+
3. Кроме того, все скрипты имеют общую глобальную область видимости, поэтому переменные, объявленные в одном теге `<script>`, становятся доступными в других:
55
55
56
56
```html run
57
57
<script>
@@ -65,23 +65,23 @@ window.alert("Привет");
65
65
</script>
66
66
```
67
67
68
-
4. Мелочь, но всё же, значение `this` в глобальной области видимости — `window`.
68
+
4. Мелочь, но всё же стоит сказать, что значение `this` в глобальной области видимости — `window`.
69
69
70
70
```js untrusted run no-strict refresh
71
71
alert(this); // window
72
72
```
73
73
74
-
Почему так? На момент создания языка, объединение различных данных в одном объекте `window`, должно было "упростить" работу. Но с тех пор многое изменилось. Крошечные скрипты превратились в крупные приложения, требующие правильной архитектуры.
74
+
Почему так? На момент создания языка объединение различных данных в одном объекте `window` должно было "упростить" работу. Но с тех пор многое изменилось. Крошечные скрипты превратились в крупные приложения, требующие правильной архитектуры.
75
75
76
-
Хорошо ли, что разные скрипты (возможно из разных источников) "видят" переменные друг друга?
76
+
Хорошо ли, что разные скрипты (возможно, из разных источников) "видят" переменные друг друга?
77
77
78
78
Нет, потому что это может привести к конфликту имён: если одинаковые имена переменных используются двумя скриптами — эти переменные будут конфликтовать между собой.
79
79
80
-
Сейчас,"многоцелевой"`window` считается ошибкой проектирования языка.
80
+
Сейчас "многоцелевой"`window` считается ошибкой проектирования языка.
81
81
82
-
К счастью, есть "дорога из ада" — JavaScriptмодули.
82
+
К счастью, есть "дорога из ада" — JavaScript-модули.
83
83
84
-
Если мы назначим тегу `<script>` атрибут `type="module"`, такой скрипт будет считаться отдельным модулем с собственной областью видимости верхнего уровня (лексическим окружением) не пересекающейся с `window`.
84
+
Если мы назначим тегу `<script>` атрибут `type="module"`, такой скрипт будет считаться отдельным модулем с собственной областью видимости верхнего уровня (лексическим окружением), не пересекающейся с `window`.
85
85
86
86
- В модуле `var x` не станет свойством `window`:
87
87
@@ -106,7 +106,7 @@ window.alert("Привет");
106
106
</script>
107
107
```
108
108
109
-
- И последнее, в модуле значение `this` на верхнем уровне равно `undefined` (действительно, почему должно быть `window`?):
109
+
- И последнее: в модуле значение `this` на верхнем уровне равно `undefined` (действительно, почему должно быть `window`?):
110
110
111
111
```html run
112
112
<script type="module">
@@ -152,4 +152,4 @@ window.alert("Привет");
152
152
}
153
153
```
154
154
155
-
...И конечно, если в браузере мы используем `window` для доступа к функциям окна браузера (не глобального объекта) — это вполне нормально.
155
+
...И, конечно, если в браузере мы используем `window` для доступа к функциям окна браузера (не глобального объекта) — это вполне нормально.
0 commit comments