Skip to content

structure fix #282

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jan 22, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions 1-js/02-first-steps/02-structure/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
alert('Привіт'); alert('Світ');
```

Зазвичай кожну інструкцію пишуть з нового рядка, щоб код було легше читати:
Зазвичай кожну інструкцію пишуть з нового рядка, щоби код було легше читати:

```js run no-beautify
alert('Привіт');
Expand All @@ -25,7 +25,7 @@ alert('Світ');

## Крапка з комою [#semicolon]

В більшості випадків крапку з комою можна пропустити, якщо є перенесення на новий рядок.
Здебільшого крапку з комою можна пропустити, якщо є перенесення на новий рядок.

Такий код буде працювати:

Expand All @@ -34,11 +34,11 @@ alert('Привіт')
alert('Світ')
```

В цьому випадку JavaScript інтерпретує перенесення рядка як "неявну" крапку з комою. Це називається [автоматичне вставлення крапки з комою](https://tc39.github.io/ecma262/#sec-automatic-semicolon-insertion).
У цьому разі JavaScript інтерпретує перенесення рядка як "неявну" крапку з комою. Це називається [автоматичне вставлення крапки з комою](https://tc39.github.io/ecma262/#sec-automatic-semicolon-insertion).

**В більшості випадків, новий рядок означає крапку з комою. Але "в більшості випадків" не означає "завжди"!**
**Переважно новий рядок означає крапку з комою. Але "переважно" не означає "завжди"!**

В деяких випадках новий рядок не означає крапку з комою. Наприклад:
У деяких випадках новий рядок не означає крапку з комою. Наприклад:

```js run no-beautify
alert(3 +
Expand All @@ -50,7 +50,7 @@ alert(3 +

**Але є ситуації, коли JavaScript "забуває" вставити крапку з комою там, де це дійсно потрібно.**

Помилки, які виникають в таких ситуаціях, досить важко виявити й виправити.
Помилки, які виникають у таких ситуаціях, досить важко виявити й виправити.

````smart header="Приклад такої помилки"
Якщо хочете побачити конкретний приклад такої помилки, зверніть увагу на цей код:
Expand All @@ -61,7 +61,7 @@ alert("Привіт");
[1, 2].forEach(alert);
```

Поки що не задумуйтеся, що означають квадратні дужки `[]` і `forEach`. Ми вивчемо їх пізніше. Зараз просто запам’ятайте результат виконання коду: спочатку виведеться `Привіт`, далі `1`, а потім `2`.
Поки що не задумуйтеся, що означають квадратні дужки `[]` і `forEach`. Ми вивчимо їх пізніше. Зараз просто запам’ятайте результат виконання коду: спочатку виведеться `Привіт`, далі `1`, а потім `2`.

А тепер видалимо крапку з комою після першого `alert`:

Expand All @@ -75,20 +75,20 @@ alert("Привіт")

Якщо ми запустимо цей код, виведеться лише `Привіт` (а потім виникне помилка, яку можна побачити в консолі). Числа більше не виводяться.

Це тому що JavaScript не вставляє крапку з комою перед квадратними дужками `[...]`. Оскільки крапка з комою автоматично не вставиться, код в цьому прикладі виконається як одна інструкція.
Це тому що JavaScript не вставляє крапку з комою перед квадратними дужками `[...]`. Оскільки крапка з комою автоматично не вставиться, код у цьому прикладі виконається як одна інструкція.

Ось як рушій побачить її:

```js run no-beautify
alert("Привіт")[1, 2].forEach(alert);
```

Виглядає дивно, чи не так? В даному випадку таке об’єднання невірне. Щоб код правильно працював, нам потрібно поставити крапку з комою після `alert`.
Дивний вигляд, чи не так? У цьому випадку таке об’єднання неправильне. Щоби код правильно працював, нам потрібно поставити крапку з комою після `alert`.

Це може статися в інших випадках.
````

Ми рекомендуємо ставити крапку з комою між інструкціями, навіть якщо вони розділені новими рядками. Це правило широко використовується в спільноті розробників. Варто повторити ще раз -- в більшості випадків *можна* пропускати крапки з комою. Але безпечніше -- особливо для новачка -- використовувати їх.
Ми рекомендуємо ставити крапку з комою між інструкціями, навіть якщо вони розділені новими рядками. Це правило широко використовується в спільноті розробників. Варто повторити ще раз -- здебільшого *можна* пропускати крапки з комою. Але безпечніше -- особливо для новачка -- використовувати їх.

## Коментарі [#code-comments]

Expand All @@ -98,22 +98,22 @@ alert("Привіт")[1, 2].forEach(alert);

**Однорядкові коментарі починаються з подвійної косої риски `//`.**

Частина рядка після `//` вважається коментарем. Такий коментар може займати весь рядок, або знаходитися після інструкції.
Частина рядка після `//` вважається коментарем. Такий коментар може займати весь рядок, або міститися після інструкції.

Ось так:
```js run
// Цей коментар займає весь рядок
alert('Привіт');

alert('Світ'); // Цей коментар знаходиться після інструкції
alert('Світ'); // Цей коментар міститься після інструкції
```

**Багаторядкові коментарі починаються з косої риски з зірочкою <code>/&#42;</code> і закінчується зірочкою з косою рискою <code>&#42;/</code>.**

Ось так:

```js run
/* Приклад з двома повідомленнями.
/* Приклад із двома повідомленнями.
Це багаторядковий коментар.
*/
alert('Привіт');
Expand All @@ -132,13 +132,13 @@ alert('Світ');
```

```smart header="Використовуйте комбінації клавіш!"
В більшості редакторів рядок коду можна закоментувати, натиснувши комбінацію клавіш `key:Ctrl+/`, а щоб закоментувати декілька рядків – виділіть потрібні рядки і натисніть комбінацію клавіш `key:Ctrl+Shift+/`. В macOS потрібно натискати клавішу `key:Cmd` замість `key:Ctrl` і клавішу `key:Option` замість `key:Shift`.
У більшості редакторів рядок коду можна закоментувати, натиснувши комбінацію клавіш `key:Ctrl+/`, а щоби закоментувати декілька рядків – виділіть потрібні рядки та натисніть комбінацію клавіш `key:Ctrl+Shift+/`. У macOS потрібно натискати клавішу `key:Cmd` замість `key:Ctrl` і клавішу `key:Option` замість `key:Shift`.
```

````warn header="Вкладені коментарі не підтримуються!"
Не може бути `/*...*/` всередині `/*...*/`.

Такий код "вмре" з помилкою:
Такий код "умре" з помилкою:

```js run no-beautify
/*
Expand Down