|
73 | 73 |
|
74 | 74 | В то время как `foo` и `i` — локальные переменные в области видимости функции `test`, присвоение `bar` переопределит значение одноимённой глобальной переменной.
|
75 | 75 |
|
76 |
| -### Высасывание |
| 76 | +### Всплытие |
77 | 77 |
|
78 |
| -JavaScript **высасывает** определения. Это значит, что оба определения с использованием `var` и определение `function` будут перенесены наверх заключающей их области видимости. |
| 78 | +В JavaScript действует механизм **всплытия** определения. Это значит, что оба определения с использованием `var` и определение `function` будут перенесены наверх заключающей их области видимости. |
79 | 79 |
|
80 | 80 | bar();
|
81 | 81 | var bar = function() {};
|
@@ -116,16 +116,16 @@ JavaScript **высасывает** определения. Это значит,
|
116 | 116 |
|
117 | 117 | bar(); // вылетает с ошибкой TypeError,
|
118 | 118 | // поскольку bar всё ещё 'undefined'
|
119 |
| - someValue = 42; // присвоения не подвержены высасыванию |
| 119 | + someValue = 42; // присвоения не подвержены всплытию |
120 | 120 | bar = function() {};
|
121 | 121 |
|
122 | 122 | test();
|
123 | 123 |
|
124 | 124 | Потерянная область видимости блока не только переместит операторы `var` вовне циклов и их тел, но и сделает результаты некоторых конструкций с `if` неинтуитивными.
|
125 | 125 |
|
126 |
| -В исходном коде оператор `if` изменял *глобальную переменную* `goo`, когда, как оказалось, он изменяет *локальную переменную* — в результате работы высасывания. |
| 126 | +В исходном коде оператор `if` изменял *глобальную переменную* `goo`, когда, как оказалось, он изменяет *локальную переменную* — в результате работы всплытия. |
127 | 127 |
|
128 |
| -Если вы не знакомы с *высасываниями*, то можете посчитать, что нижеприведённый код должен породить |
| 128 | +Если вы не знакомы со *всплытием*, то можете посчитать, что нижеприведённый код должен породить |
129 | 129 | `ReferenceError`.
|
130 | 130 |
|
131 | 131 | // проверить, проинициализована ли SomeImportantThing
|
@@ -162,7 +162,7 @@ JavaScript **высасывает** определения. Это значит,
|
162 | 162 |
|
163 | 163 | ### Пространства имён
|
164 | 164 |
|
165 |
| -Нередкое последствие наличия только одного глобального пространства имён — проблемы с перекрытием имён переменных. В JavaScript эту проблему легко избежать, используя *анонимные обёртки*. |
| 165 | +Нередкое последствие наличия только одного глобального пространства имён — проблема с перекрытием имён переменных. В JavaScript эту проблему легко избежать, используя *анонимные обёртки*. |
166 | 166 |
|
167 | 167 | (function() {
|
168 | 168 | // самостоятельно созданное "пространство имён"
|
|
0 commit comments