Skip to content

Commit 1da2443

Browse files
authored
Remove english strings
1 parent 9e50e31 commit 1da2443

1 file changed

Lines changed: 42 additions & 42 deletions

File tree

  • 1-js/06-advanced-functions/05-global-object
Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,57 @@
11

22
# Глобальный объект
33

4-
Глобальный объект предоставляет переменные и функции, доступные в любом месте программы. В основном те, что встроенны в язык или среду исполнения. The global object provides variables and functions that are available anywhere. Mostly, the ones that are built into the language or the host environment.
4+
Глобальный объект предоставляет переменные и функции, доступные в любом месте программы. В основном те, что встроенны в язык или среду исполнения.
55

6-
В браузере он назыается "window", в Node.js — "global", в другой среде исполнения глобальный объект может называться иначе. In a browser it is named "window", for Node.js it is "global", for other environments it may have another name.
6+
В браузере он назыается "window", в Node.js — "global", в другой среде исполнения глобальный объект может называться иначе.
77

8-
Например, мы можем вызвать `alert` как метод `window`: For instance, we can call `alert` as a method of `window`:
8+
Например, мы можем вызвать `alert` как метод `window`:
99

1010
```js run
11-
alert("Hello");
11+
alert("Привет");
1212

13-
// the same as
14-
window.alert("Hello");
13+
// тоже самое что и
14+
window.alert("Привет");
1515
```
1616

17-
Мы можем ссылаться на другие встроенные функции типа `Array` как `window.Array` или создавать свои собственные свойства глобального объекта. We can reference other built-in functions like `Array` as `window.Array` and create our own properties on it.
17+
Мы можем ссылаться на другие встроенные функции типа `Array` как `window.Array` или создавать свои собственные свойства глобального объекта.
1818

19-
## Браузер: объект "window" Browser: the "window" object
19+
## Браузер: объект "window"
2020

21-
По историческим причинам, браузерный объект `window` выглядит слегка запутанно. For historical reasons, in-browser `window` object is a bit messed up.
21+
По историческим причинам, браузерный объект `window` выглядит слегка запутанно.
2222

23-
1. Он предоставляет инструменты для работы с окном браузера, а также играет роль глобального объекта. It provides the "browser window" functionality, besides playing the role of a global object.
23+
1. Он предоставляет инструменты для работы с окном браузера, а также играет роль глобального объекта.
2424

25-
Мы можем использовать `window` для доступа к свойствам и методам характерным для окна браузера. We can use `window` to access properties and methods, specific to the browser window:
25+
Мы можем использовать `window` для доступа к свойствам и методам характерным для окна браузера:
2626

2727
```js run
28-
alert(window.innerHeight); // выводит высоту окна браузера shows the browser window height
28+
alert(window.innerHeight); // выводит высоту окна браузера
2929

30-
window.open('http://google.com'); // открывает новое окно браузера opens a new browser window
30+
window.open('http://google.com'); // открывает новое окно браузера
3131
```
3232

33-
2. Если переменные, объявленные с помощью `var` или декларации функиций находятся на верхнем уровне программы, то они автоматически становятся свойствами `window`. Top-level `var` variables and function declarations automatically become properties of `window`.
33+
2. Если переменные, объявленные с помощью `var` или декларации функиций находятся на верхнем уровне программы, то они автоматически становятся свойствами `window`.
3434

35-
Например For instance:
35+
Например:
3636
```js untrusted run no-strict refresh
3737
var x = 5;
3838
39-
alert(window.x); // 5 (var x становиться свойством window) 5 (var x becomes a property of window)
39+
alert(window.x); // 5 (var x становиться свойством window)
4040
4141
window.x = 0;
4242
43-
alert(x); // 0, переменная изменена variable modified
43+
alert(x); // 0, переменная изменена
4444
```
4545

46-
Обратите внимание, что этого не происходит с более современными `let/const` объявлениями. Please note, that doesn't happen with more modern `let/const` declarations:
46+
Обратите внимание, что этого не происходит с более современными `let/const` объявлениями:
4747

4848
```js untrusted run no-strict refresh
4949
let x = 5;
5050
51-
alert(window.x); // undefined ("let" не создаёт свойства window) undefined ("let" doesn't create a window property)
51+
alert(window.x); // undefined ("let" не создаёт свойства window)
5252
```
5353

54-
3. Кроме того, все скрипты имеют общюю глобальную область видимотси, поэтому переменные, объявленные в одном теге `<script>` становятся видимыми в других. Also, all scripts share the same global scope, so variables declared in one `<script>` become visible in another ones:
54+
3. Кроме того, все скрипты имеют общюю глобальную область видимотси, поэтому переменные, объявленные в одном теге `<script>` становятся видимыми в других:
5555

5656
```html run
5757
<script>
@@ -65,25 +65,25 @@ window.alert("Hello");
6565
</script>
6666
```
6767

68-
4. Мелочь, но всё же, значение `this` в глобальной области видимости — `window`. And, a minor thing, but still: the value of `this` in the global scope is `window`.
68+
4. Мелочь, но всё же, значение `this` в глобальной области видимости — `window`.
6969

7070
```js untrusted run no-strict refresh
7171
alert(this); // window
7272
```
7373

74-
Почему было сделано так? На момент создания языка, объединение нескольких аспектов в одном объекте `window`, должно было "упростить" работу. Но с тех пор многое изменилось. Крошечные скрипты превратились в крупные приложения, требующие правльной архитектуры. Why was it made like this? At the time of the language creation, the idea to merge multiple aspects into a single `window` object was to "make things simple". But since then many things changed. Tiny scripts became big applications that require proper architecture.
74+
Почему было сделано так? На момент создания языка, объединение нескольких аспектов в одном объекте `window`, должно было "упростить" работу. Но с тех пор многое изменилось. Крошечные скрипты превратились в крупные приложения, требующие правльной архитектуры.
7575

76-
Хорошо ли, что разные скрипты (возможно из разных источников) "видят" переменные друг друга? Is it good that different scripts (possibly from different sources) see variables of each other?
76+
Хорошо ли, что разные скрипты (возможно из разных источников) "видят" переменные друг друга?
7777

78-
Нет, потому что это может привести к конфликту имён: одинаковые имена переменных могут использоваться двумя скриптами для различных целей и эти переменные будут конфликтовать между собой. No, it's not, because it may lead to naming conflicts: the same variable name can be used in two scripts for different purposes, so they will conflict with each other.
78+
Нет, потому что это может привести к конфликту имён: одинаковые имена переменных могут использоваться двумя скриптами для различных целей и эти переменные будут конфликтовать между собой.
7979

80-
Сейчас, многоцелевой `window` считается ошибкой проектирования языка. As of now, the multi-purpose `window` is considered a design mistake in the language.
80+
Сейчас, многоцелевой `window` считается ошибкой проектирования языка.
8181

82-
К счастью, есть "дорога из ада" — JavaScript модули. Luckily, there's a "road out of hell", called "JavaScript modules".
82+
К счастью, есть "дорога из ада" — JavaScript модули.
8383

84-
Если мы установим тегу `<script>` атрибут `type="module"`, такой скрипт будет считаться отдельным модулем сосбственной областью видимости верхнего уровня (лексическим окружением) не пересекающейся с `window`. If we set `type="module"` attribute on a `<script>` tag, then such script is considered a separate "module" with its own top-level scope (lexical environment), not interfering with `window`.
84+
Если мы установим тегу `<script>` атрибут `type="module"`, такой скрипт будет считаться отдельным модулем сосбственной областью видимости верхнего уровня (лексическим окружением) не пересекающейся с `window`.
8585

86-
- В модуле `var x` не станет свойством `window`: - In a module, `var x` does not become a property of `window`:
86+
- В модуле `var x` не станет свойством `window`:
8787

8888
```html run
8989
<script type="module">
@@ -93,7 +93,7 @@ window.alert("Hello");
9393
</script>
9494
```
9595

96-
- Два модуля, которые не видят переменные друг друга: - Two modules that do not see variables of each other:
96+
- Два модуля, которые не видят переменные друг друга:
9797

9898
```html run
9999
<script type="module">
@@ -102,40 +102,40 @@ window.alert("Hello");
102102
103103
<script type="module">
104104
alert(window.x); // undefined
105-
alert(x); // Ошибка: переменная не объявлена Error: undeclared variable
105+
alert(x); // Ошибка: переменная не объявлена
106106
</script>
107107
```
108108

109-
- И последнее, в модуле значение `this` на верхнем уровне равно `undefined` (действительно, почему должно быть `window`?): - And, the last minor thing, the top-level value of `this` in a module is `undefined` (why should it be `window` anyway?):
109+
- И последнее, в модуле значение `this` на верхнем уровне равно `undefined` (действительно, почему должно быть `window`?):
110110

111111
```html run
112112
<script type="module">
113113
alert(this); // undefined
114114
</script>
115115
```
116116

117-
**Используйте `<script type="module">`, чтобы исправить недостаток проектирования языка, отделяя область видимости верхнего уровня от `window`. Using `<script type="module">` fixes the design flaw of the language by separating top-level scope from `window`.**
117+
**Используйте `<script type="module">`, чтобы исправить недостаток проектирования языка, отделяя область видимости верхнего уровня от `window`.**
118118

119-
Мы рассмотрим другие свойства модулей позже в главе We'll cover more features of modules later, in the chapter [](info:modules).
119+
Мы рассмотрим другие свойства модулей позже в главе [](info:modules).
120120

121-
## Допустимое (правильное?) использование глобального объекта Valid uses of the global object
121+
## Допустимое использование глобального объекта
122122

123-
1. Обычно не рекомендуется использовать глобальные переменные. Желатьльно, применать как можно мешьше таких переменных. Однако, если нужно поместить что-либо в глобальную область видимости, мы можем захотеть добавить это в `window` (или `global` в Node.js) Using global variables is generally discouraged. There should be as few global variables as possible, but if we need to make something globally visible, we may want to put it into `window` (or `global` in Node.js).
123+
1. Обычно не рекомендуется использовать глобальные переменные. Желатьльно, применать как можно мешьше таких переменных. Однако, если нужно поместить что-либо в глобальную область видимости, мы можем захотеть добавить это в `window` (или `global` в Node.js).
124124

125-
Мы помещаем информацию о текущем пользователе в глобальный объект, чтобы она была доступна другим скриптам. Here we put the information about the current user into a global object, to be accessible from all other scripts:
125+
Мы помещаем информацию о текущем пользователе в глобальный объект, чтобы она была доступна другим скриптам:
126126

127127
```js run
128-
// явное назначение свойства `window` explicitly assign it to `window`
128+
// явное назначение свойства `window`
129129
window.currentUser = {
130130
name: "John",
131131
age: 30
132132
};
133133
134-
// далее, где угодно в другом скрипте then, elsewhere, in another script
134+
// далее, где угодно в другом скрипте
135135
alert(window.currentUser.name); // John
136136
```
137137

138-
2. Мы можем проверить, поддерживает ли глобальный объект современные возможности языка. We can test the global object for support of modern language features.
138+
2. Мы можем проверить, поддерживает ли глобальный объект современные возможности языка.
139139

140140
Например, проверить наличие встроенного объекта `Promise` (такая поддержка отсутствует в очень старых браузерах). For instance, test if a build-in `Promise` object exists (it doesn't in really old browsers):
141141
```js run
@@ -144,12 +144,12 @@ window.alert("Hello");
144144
}
145145
```
146146
147-
3. Мы можем создать полифилл: добавить функции, которые не поддерживаются окружением (скажем, старым браузером), но сущемтвуют в современном стандарте. We can create "polyfills": add functions that are not supported by the environment (say, an old browser), but exist in the modern standard.
147+
3. Мы можем создать полифилл: добавить функции, которые не поддерживаются окружением (скажем, старым браузером), но сущемтвуют в современном стандарте.
148148
149149
```js run
150150
if (!window.Promise) {
151-
window.Promise = ... // собственная реализация современной возможности языка custom implementation of the modern language feature
151+
window.Promise = ... // собственная реализация современной возможности языка
152152
}
153153
```
154154
155-
...И конечно, если в браузере мы используем `window` для доступа к функциям окна браузера (не как глобального объекта) это вполне нормально. And of course, if we're in a browser, using `window` to access browser window features (not as a global object) is completely fine.
155+
...И конечно, если в браузере мы используем `window` для доступа к функциям окна браузера (не как глобального объекта) это вполне нормально.

0 commit comments

Comments
 (0)