Skip to content

Commit

Permalink
change translation of 'strict mode' according to discussion (issue #39)
Browse files Browse the repository at this point in the history
  • Loading branch information
tarasyyyk committed Nov 2, 2019
1 parent bb4a76c commit 539c505
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 18 deletions.
24 changes: 12 additions & 12 deletions 1-js/02-first-steps/03-strict-mode/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

## "use strict"

Директива виглядає як рядок: `"use strict"` чи `'use strict'` і дослівно перекладається як "використовувати строгий (режим)". Якщо вона прописана на початку скрипта, він буде виконуватися у "сучасному" режимі.
Директива виглядає як рядок: `"use strict"` чи `'use strict'` і дослівно перекладається як "використовувати суворий (режим)". Якщо вона прописана на початку скрипта, він буде виконуватися у "сучасному" режимі.

Наприклад:

Expand All @@ -19,21 +19,21 @@
...
```

Незабаром ми вивчемо функції (такий собі спосіб групування команд). Забігаючи наперед, майте на увазі, що `"use strict"` також можна писати на початку тіла функції, замість цілого скрипта. Таким чином, строгий режим буде використовуватися лише в межах цієї функції. Проте, зазвичай люди використовують цей режим для всього скрипта.
Незабаром ми вивчемо функції (такий собі спосіб групування команд). Забігаючи наперед, майте на увазі, що `"use strict"` також можна писати на початку тіла функції, замість цілого скрипта. Таким чином, суворий режим буде використовуватися лише в межах цієї функції. Проте, зазвичай люди використовують цей режим для всього скрипта.


````warn header="Переконайтеся, що \"use strict\" написано зверху"
Будь ласка, завжди переконуйтеся в тому, що директива `"use strict"` написана зверху ваших скриптів, інакше строгий режим не увімкнеться.
Будь ласка, завжди переконуйтеся в тому, що директива `"use strict"` написана зверху ваших скриптів, інакше суворий режим не увімкнеться.
Тут строгий режим не спрацює:
Тут суворий режим не спрацює:
```js no-strict
alert("деякий код");
// "use strict" нижче alert(), і тому ігнорується -- він повинен бути зверху
"use strict";
// строгий режим не активовано
// суворий режим не активовано
```
Лише коментарі можуть бути вище `"use strict"`.
Expand All @@ -42,12 +42,12 @@ alert("деякий код");
```warn header="Неможливо скасувати `use strict`"
Немає такої директиви, як `"no use strict"`, яка могла б вернути старий режим.

Як тільки ми увійшли в строгий режим, назад дороги немає.
Як тільки ми увійшли в суворий режим, назад дороги немає.
```
## Консоль браузера
На майбутнє, коли ви використовуєте консоль браузера для тестування функцій, будь ласка, запам'ятайте, що консоль усталено не використовує строгий режим.
На майбутнє, коли ви використовуєте консоль браузера для тестування функцій, будь ласка, запам'ятайте, що консоль усталено не використовує суворий режим.
В такому випадку, коли `use strict` робитиме різницю, ви можете отримати інші результати.
Expand All @@ -73,13 +73,13 @@ alert("деякий код");

## Завжди використовуйте "use strict"

Нам ще доведеться вивчити відмінності між строгим режимом і "усталеним" режимом.
Нам ще доведеться вивчити відмінності між суворим режимом і "усталеним" режимом.

У наступних розділах, в процесі вивчення особливостей мови, ми замітимо різницю між строгим і усталеним режимами. На щастя, їх не багато, і вони справді роблять наше життя кращим.
У наступних розділах, в процесі вивчення особливостей мови, ми замітимо різницю між суворим і усталеним режимами. На щастя, їх не багато, і вони справді роблять наше життя кращим.

Зараз достатньо знати про це в загальному:

1. Директива `"use strict"` переключає рушій у "сучасний" режим, змінюючи поведінку деяких вбудованих функцій. Ми побачимо детальніше згодом, у посібнику.
2. Строгий режим вмикається шляхом написання `"use strict"` зверху скрипта, або на початку функції. Деякі можливості мови, як "класи" чи "модулі", автоматично вмикають строгий режим.
3. Строгий режим підтримується всіма сучасними браузерами.
4. Ми рекомендуємо завжди починати написання скриптів з `"use strict"`. Усі приклади в цьому посібнику припускають увімкнений строгий режим, за випадків (дуже рідких), коли не вказано інше.
2. Суворий режим вмикається шляхом написання `"use strict"` зверху скрипта, або на початку функції. Деякі можливості мови, як "класи" чи "модулі", автоматично вмикають суворий режим.
3. Суворий режим підтримується всіма сучасними браузерами.
4. Ми рекомендуємо завжди починати написання скриптів з `"use strict"`. Усі приклади в цьому посібнику припускають увімкнений суворий режим, за випадків (дуже рідких), коли не вказано інше.
4 changes: 2 additions & 2 deletions 1-js/02-first-steps/04-variables/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ let return = 5; // також неможна називати змінну "retu

````warn header="Створення змінної без використання `use strict`"

Зазвичай нам потрібно оголосити змінну перед її використанням. Але в старі часи можна було технічно створити змінну простим присвоєнням значення, без використання `let`. Це все ще працює, якщо не вмикати `строгий режим` в наших скриптах для підтримки сумісності зі старими сценаріями.
Зазвичай нам потрібно оголосити змінну перед її використанням. Але в старі часи можна було технічно створити змінну простим присвоєнням значення, без використання `let`. Це все ще працює, якщо не вмикати `суворий режим` в наших скриптах для підтримки сумісності зі старими сценаріями.

```js run no-strict
// "use strict" в цьому прикладі не використовується
Expand All @@ -218,7 +218,7 @@ num = 5; // якщо змінна "num" не існувала, її буде с
alert(num); // 5
```

Це погана практика, яка призведе до помилки в строгому режимі:
Це погана практика, яка призведе до помилки в суворому режимі:

```js
"use strict";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ alert(str.test);
```

В залежності від того, втановлений у вас `use strict` чи ні, результати будуть наступними:
1. `undefined` (без строгого режиму)
2. Помилка (строгий режим)
1. `undefined` (без суворого режиму)
2. Помилка (суворий режим)

Чому? Давайте повторимо те, що відбувається в рядку, який позначено `(*)`:

1. Коли ми намагаємося отримати доступ до `str`, створюється "об'єкт обгортка".
2. В строгому режимі, спроба запису викличе помилку.
3. В іншому випадку, операція здійсниться і об'єкт отримає властивість `test`, але після цього "об'єкт обгортка" зникне, отже, якщо код виконується не в строгому режимі, на останньому рядку `str` не матиме властивості `test`.
2. В суворому режимі, спроба запису викличе помилку.
3. В іншому випадку, операція здійсниться і об'єкт отримає властивість `test`, але після цього "об'єкт обгортка" зникне, отже, якщо код виконується не в суворому режимі, на останньому рядку `str` не матиме властивості `test`.

**Цей приклад чітко показує, що примітиви не є об'єктами.**

Expand Down

0 comments on commit 539c505

Please sign in to comment.