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
@@ -1,11 +1,11 @@
1
1
2
2
# Глобальный объект
3
3
4
-
Глобальный объект предоставляет переменные и функции, доступные в любом месте программы. В основном те, что встроенны в язык или среду исполнения.
4
+
Глобальный объект предоставляет переменные и функции, доступные в любом месте программы. В основном те, что встроены в язык или среду исполнения.
5
5
6
-
В браузере он назыается "window", в Node.js — "global", в другой среде исполнения глобальный объект может называться иначе.
6
+
В браузере он назыается "window", в Node.js — "global", в другой среде исполнения может называться иначе.
7
7
8
-
Например, мы можем вызвать`alert` как метод `window`:
8
+
Например, вызовем`alert` как метод `window`:
9
9
10
10
```js run
11
11
alert("Привет");
@@ -14,15 +14,15 @@ alert("Привет");
14
14
window.alert("Привет");
15
15
```
16
16
17
-
Мы можем ссылаться на другие встроенные функции типа `Array`как`window.Array` или создавать свои собственные свойства глобального объекта.
17
+
Мы можем ссылаться на другие встроенные функции, к примеру, `Array`так`window.Array` или создавать свои собственные свойства глобального объекта.
18
18
19
19
## Браузер: объект "window"
20
20
21
21
По историческим причинам, браузерный объект `window` выглядит слегка запутанно.
22
22
23
23
1. Он предоставляет инструменты для работы с окном браузера, а также играет роль глобального объекта.
24
24
25
-
Мы можем использовать `window` для доступа к свойствам и методам характерным для окна браузера:
25
+
Можно использовать `window` для доступа к свойствам и методам характерным для окна браузера:
26
26
27
27
```js run
28
28
alert(window.innerHeight); // выводит высоту окна браузера
@@ -36,7 +36,7 @@ window.alert("Привет");
36
36
```js untrusted run no-strict refresh
37
37
var x = 5;
38
38
39
-
alert(window.x); // 5 (var x становиться свойством window)
39
+
alert(window.x); // 5 (var x становится свойством window)
40
40
41
41
window.x = 0;
42
42
@@ -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>
@@ -71,7 +71,7 @@ window.alert("Привет");
71
71
alert(this); // window
72
72
```
73
73
74
-
Почему было сделано так? На момент создания языка, объединение нескольких аспектов в одном объекте `window`, должно было "упростить" работу. Но с тех пор многое изменилось. Крошечные скрипты превратились в крупные приложения, требующие правльной архитектуры.
74
+
Почему так? На момент создания языка, объединение нескольких аспектов в одном объекте `window`, должно было "упростить" работу. Но с тех пор многое изменилось. Крошечные скрипты превратились в крупные приложения, требующие правльной архитектуры.
75
75
76
76
Хорошо ли, что разные скрипты (возможно из разных источников) "видят" переменные друг друга?
77
77
@@ -137,14 +137,14 @@ window.alert("Привет");
137
137
138
138
2. Мы можем проверить, поддерживает ли глобальный объект современные возможности языка.
139
139
140
-
Например, проверить наличие встроенного объекта `Promise` (такая поддержка отсутствует в очень старых браузерах). For instance, test if a build-in`Promise` object exists (it doesn't in really old browsers):
140
+
Например, проверить наличие встроенного объекта `Promise` (такая поддержка отсутствует в очень старых браузерах):
141
141
```js run
142
142
if (!window.Promise) {
143
-
alert("Ваш браузер очень старый!"); alert("Your browser is really old!");
143
+
alert("Ваш браузер очень старый!");
144
144
}
145
145
```
146
146
147
-
3. Мы можем создать полифилл: добавить функции, которые не поддерживаются окружением (скажем, старым браузером), но сущемтвуют в современном стандарте.
147
+
3. Мы можем создать полифилл: добавить функции, которые не поддерживаются окружением (скажем, старым браузером), но сущеcтвуют в современном стандарте.
0 commit comments