Skip to content

Commit 436c613

Browse files
committed
fix typos
1 parent 76b3cce commit 436c613

1 file changed

Lines changed: 28 additions & 28 deletions

File tree

  • 1-js/02-first-steps/15-function-expressions-arrows

1-js/02-first-steps/15-function-expressions-arrows/article.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ sayHi(); // Hello // прежняя тоже работает (почем
6060

6161
Давайте детально разберём всё, что тут произошло:
6262

63-
1. Объявление функции `(1)` создало функцию и присвоило её значение переменной с именем `sayHi`.
63+
1. Объявление Функции `(1)` создало функцию и присвоило её значение переменной с именем `sayHi`.
6464
2. В строке `(2)` мы скопировали её значение в переменную `func`.
6565

6666
Обратите внимание (ещё раз): нет круглых скобок после `sayHi`. Если бы они были, то выражение `func = sayHi()` "записало" бы *результат вызова* `sayHi()` в переменную `func`, а не саму *функцию* `sayHi`.
@@ -122,15 +122,15 @@ function ask(question, yes, no) {
122122
*/!*
123123

124124
function showOk() {
125-
alert( "You agreed." );
125+
alert( "Вы согласны." );
126126
}
127127

128128
function showCancel() {
129-
alert( "You canceled the execution." );
129+
alert( "Вы отменили выполнение." );
130130
}
131131

132132
// использование: функции showOk, showCancel передаются в качестве аргументов ask
133-
ask("Do you agree?", showOk, showCancel);
133+
ask("Вы согласны?", showOk, showCancel);
134134
```
135135

136136
Перед тем, как мы рассмотрим, как можно записать это гораздо короче, давайте обратим внимание, что в браузере (и в отдельных случаях на стороне сервера) подобное использование функций очень распространено. Основным отличием между реализацией таких функций в реальном проекте и примером выше, является то, что в реальности функции используют более сложные способы взаимодействия с пользователем, чем простой вызов `confirm`. В браузерах такие функции обычно отображают красивые диалоговые окна. Но это уже другая история.
@@ -149,9 +149,9 @@ function ask(question, yes, no) {
149149

150150
*!*
151151
ask(
152-
"Do you agree?",
153-
function() { alert("You agreed."); },
154-
function() { alert("You canceled the execution."); }
152+
"Вы согласны?",
153+
function() { alert("Вы согласились."); },
154+
function() { alert("Вы отменили выполнение."); }
155155
);
156156
*/!*
157157
```
@@ -166,7 +166,7 @@ ask(
166166
```smart header="Функция это значение представляющее \"действие\""
167167
Обычные значения, такие как строки или числа представляют *данные*.
168168
169-
Функции предназначены для *значений*.
169+
Функции предназначены для *действий*.
170170
171171
Мы можем передавать их другим переменным и вызывать их когда захотим.
172172
```
@@ -186,7 +186,7 @@ ask(
186186
return a + b;
187187
}
188188
```
189-
- В случае Функциональным Выражением: функция создаётся внутри выражения или другой синтаксической конструкции. В данном случае функция создаётся в правой части "выражения присваивания" `=`:
189+
- В случае с Функциональным Выражением: функция создаётся внутри выражения или другой синтаксической конструкции. В данном случае функция создаётся в правой части "выражения присваивания" `=`:
190190

191191
```js
192192
// Функциональное Выражение
@@ -203,11 +203,11 @@ ask(
203203

204204
С Объявлением Функций всё иначе.
205205

206-
**Объявление Функции применимы ко всему скрипту или блоку кода.**
206+
**Объявление Функции применимо ко всему скрипту или блоку кода.**
207207

208-
Другими словами, когда движок JavaScript *подготавливает* к выполнению скрипт или блок кода, прежде всего в нём происходит поиск Объявлений Функций, а затем создаются все найденные функции, созданные таким образом. Можно считать этот процесс "стадией инициализации".
208+
Другими словами, когда движок JavaScript *подготавливает* к выполнению скрипт или блок кода, прежде всего в нём происходит поиск Объявлений Функций, а затем инициализируются все найденные функции, созданные таким образом. Можно считать этот процесс "стадией инициализации".
209209

210-
И только после того, как все объявления функций будут обработаны, продолжиться выполнение остального кода.
210+
И только после того, как все объявленные функции будут обработаны, продолжиться выполнение остального кода.
211211

212212
В результате, функции, созданные, как Объявление Функции могут быть вызваны раньше своих определений.
213213

@@ -223,13 +223,13 @@ function sayHi(name) {
223223
}
224224
```
225225

226-
Объявление Функции `sayHi` было создано, когда движок JavaScript приготавливал скрипт к выполнению, и такая функция отовсюду.
226+
Объявление Функции `sayHi` было создано, когда движок JavaScript подготавливал скрипт к выполнению, и такая функция видна повсюду в этом скрипте.
227227

228228
...В случае с Функциональным Выражением, такой код вызовет ошибку:
229229

230230
```js run refresh untrusted
231231
*!*
232-
sayHi("John"); // error!
232+
sayHi("John"); // ошибка!
233233
*/!*
234234
235235
let sayHi = function(name) { // (*) магии больше нет
@@ -299,7 +299,7 @@ if (age < 18) {
299299
}
300300
301301
// здесь фигурная скобка закрывается,
302-
// поэтому, Объявления Функций, созданные внутри блока кода выше -- недоступны отсюда.
302+
// поэтому Объявления Функций, созданные внутри блока кода выше -- недоступны отсюда.
303303
304304
*!*
305305
welcome(); // Ошибка: welcome is not defined
@@ -310,7 +310,7 @@ welcome(); // Ошибка: welcome is not defined
310310

311311
Верным подходом будет воспользоваться Функциональным Выражением и присвоить значение `welcome` переменной, объявленной снаружи `if`, что обеспечит нам нужную видимость.
312312

313-
Теперь работает как надо:
313+
Теперь работает как ожидалось:
314314

315315
```js run
316316
let age = prompt("Сколько Вам лет?", 18);
@@ -352,9 +352,9 @@ welcome(); // теперь всё в порядке
352352

353353

354354
```smart header="Когда использовать Объявление Функции, а когда Функциональное Выражение?"
355-
Как правило, если нам понадобилась функция в первую очередь нужно рассматривать синтаксис Объявления Функции, который мы использовали до этого. Это даёт нам больше свободы в том, как мы можем организовывать код. Функции, объявленные таким образом можно вызывать до их объявления.
355+
Как правило, если нам понадобилась функция, в первую очередь нужно рассматривать синтаксис Объявления Функции, который мы использовали до этого. Это даёт нам больше свободы в том, как мы можем организовывать код. Функции, объявленные таким образом можно вызывать до их объявления.
356356
357-
Ещё такие функции `function f(…) {…}`, чуть более заметны в коде, чем `let f = function(…) {…}`. Объявления функций более распознаваемы.
357+
Ещё такие функции `function f(…) {…}`, чуть более заметны в коде, чем `let f = function(…) {…}`. Объявления Функций более распознаваемы.
358358
359359
...Но если Объявление Функции нам не подходит по какой-то причине (мы рассмотрели это в примере выше), тогда должно быть использовано Функциональное Выражение.
360360
```
@@ -369,9 +369,9 @@ welcome(); // теперь всё в порядке
369369
let func = (arg1, arg2, ...argN) => expression
370370
```
371371

372-
...Такой код создаёт функцию `func` с аргументами `arg1..argN` и вычисляет `expression` с правой стороны с их использованием, сразу возвращая результат.
372+
...Такой код создаёт функцию `func` с аргументами `arg1..argN` и вычисляет `expression` с правой стороны с их использованием, возвращая результат.
373373

374-
Другими словами, это почти так же как:
374+
Другими словами, это почти так же, как:
375375

376376
```js
377377
let func = function(arg1, arg2, ...argN) {
@@ -409,15 +409,15 @@ let double = n => n * 2;
409409
alert( double(3) ); // 6
410410
```
411411

412-
Если нет аргументов, исользуются пустые круглые скобки (их указывать обязательно):
412+
Если нет аргументов, используются пустые круглые скобки (их указывать обязательно):
413413

414414
```js run
415415
let sayHi = () => alert("Hello!");
416416
417417
sayHi();
418418
```
419419

420-
Функции-стрелки могут быть использован, в качестве Функциональныех Выражений.
420+
Функции-стрелки могут быть использованы, в качестве Функциональных Выражений.
421421

422422
Например, вот переписанный пример уже знакомой нам функции `welcome()`:
423423

@@ -437,9 +437,9 @@ welcome(); // теперь всё в порядке
437437

438438
```smart header="Многострочные стрелочные функции"
439439
440-
В примерах выше аргументы использовались слева от `=>`, а справа вычислялось выражение с ними.
440+
В примерах выше аргументы использовались слева от `=>`, а справа вычислялось выражение с их значениями.
441441
442-
Иногда нам нужно кое-что более сложное, например, несколько выражений или инструкций. Это также возможно, но мы должны заключать такие выражения в фигурные скобки с использованием директивы `return` внутри них, как в обычной функции.
442+
Порой нам нужно кое-что более сложное, допустим, несколько выражений или инструкций. Это также возможно, но мы должны заключать такие выражения в фигурные скобки с использованием директивы `return` внутри них, как в обычной функции.
443443
444444
Например:
445445
@@ -455,7 +455,7 @@ alert( sum(1, 2) ); // 3
455455
```
456456

457457
```smart header="Кое-что ещё"
458-
Здесь мы рассмотрели Функции-стрелки, с позиции их более краткой записи. Но это далеко не всё! Стрелочные функциио обладают другими интересными особенностями. Мы вернёмся к ним позже в главе <info:arrow-functions>.
458+
Здесь мы рассмотрели Функции-стрелки, с позиции их более краткой записи. Но это далеко не всё! Стрелочные функции обладают другими интересными особенностями. Мы вернёмся к ним позже в главе <info:arrow-functions>.
459459
460460
А пока, мы можем использовать их для простых однострочных действий и колбэков.
461461
```
@@ -464,16 +464,16 @@ alert( sum(1, 2) ); // 3
464464

465465
- Функции это значения. Они могут быть присвоены, скопированы или объявлены в другом месте кода.
466466
- Если функция объявлена, как отдельная инструкция в основном потоке кода, то это "Объявление Функции".
467-
- Если функция была создана, как часть выражения, такая функция называется "Функциональным Выражением".
467+
- Если функция была создана, как часть выражения, то такая функция называется "Функциональным Выражением".
468468
- Объявления Функций обрабатываются перед выполненеи блока кода. Они видны во всём блоке.
469469
- Функциональные Выражения создаются, только когда поток выполнения достигает их.
470470

471471

472-
В большинстве случаев, когда нам нужно создать фукнцию, предпочтительно использовать Объявление Функции, т.к. оно видимо до своего объявления в коде. Это позволяет более гибко организовывать код, и обычно улучшает его читаемость.
472+
В большинстве случаев, когда нам нужно создать фукнцию, предпочтительно использовать Объявление Функции, т.к. оно видимо до своего объявления в коде. Это позволяет более гибко организовывать код, и улучшает его читаемость.
473473

474474
Таким образом, мы должны прибегать к Функциональным Выражениям в случае, когда Объявления Функций не подходят для нашей задачи. Мы рассмотрели несколько таких примеров в этой главе, и рассмотрим их ещё больше в будущем.
475475

476-
Стрелочные функции очень удобны для однострочных действий. Они бывают двух типов:
476+
Функции-стрелки очень удобны для однострочных действий. Они бывают двух типов:
477477

478478
1. Без фигурных скобок: `(...args) => expression` -- правая сторона выражение: функция выполняет его и возвращает результат.
479479
2. С фигурными скобками: `(...args) => { body }` -- скобки позволяют нам писать многосточные инструкции внутри функции, но при этом необходимо указывать директиву `return`, чтобы вернуть какое либо значение.

0 commit comments

Comments
 (0)