Skip to content

Commit b1f512b

Browse files
committed
Merge branch 'master' of github.com:javascript-tutorial/uk.javascript.info
2 parents bc6eb13 + 9920d65 commit b1f512b

File tree

15 files changed

+407
-361
lines changed

15 files changed

+407
-361
lines changed

.all-contributorsrc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -812,6 +812,24 @@
812812
"contributions": [
813813
"bug"
814814
]
815+
},
816+
{
817+
"login": "Alexandre887",
818+
"name": "Aleksandras",
819+
"avatar_url": "https://avatars.githubusercontent.com/u/74434545?v=4",
820+
"profile": "https://github.com/Alexandre887",
821+
"contributions": [
822+
"bug"
823+
]
824+
},
825+
{
826+
"login": "KhirovSasha",
827+
"name": "Khirov Sasha",
828+
"avatar_url": "https://avatars.githubusercontent.com/u/75026042?v=4",
829+
"profile": "https://github.com/KhirovSasha",
830+
"contributions": [
831+
"bug"
832+
]
815833
}
816834
],
817835
"commitConvention": "angular",

1-js/01-getting-started/2-manuals-specifications/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929

3030
Щоб дізнатися, чи підтримує браузер або інший рушій певну можливість JavaScript, дивіться на сайтах:
3131

32-
- <https://caniuse.com/> -- для кожної технології приведено таблицю сумісності з усіма браузерами; тобто, щоб побачити, які браузери підтримують сучасні криптографічні функції, слід ввести в пошуку <http://caniuse.com/#feat=cryptography>.
33-
- <https://kangax.github.io/compat-table> -- таблиця з усіма можливостями мови та рушіями, які підтримують або не підтримують відповідні технології.
32+
- <https://caniuse.com/> -- для кожної технології приведено таблицю сумісності з усіма браузерами тобто, щоб побачити, які браузери підтримують сучасні криптографічні функції, слід ввести в пошуку "[Cryptography](http://caniuse.com/#feat=cryptography)".
33+
- <https://kangax.github.io/compat-table> - таблиця з усіма можливостями мови та рушіями, які підтримують або не підтримують відповідні технології.
3434

3535
Всі ці ресурси корисні в повсякденній розробці, бо містять корисну інформацію про деталі мови, їхню підтримку тощо.
3636

37-
Будь ласка, збережіть собі ці сайти (або цю сторінку); вони вам знадобляться, якщо буде потреба детальніше розібратися в конкретному функціоналі мови.
37+
Будь ласка, збережіть собі ці сайти (або цю сторінку) вони вам знадобляться, якщо буде потреба детальніше розібратися в конкретному функціоналі мови.

1-js/05-data-types/12-json/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ JSON.stringify(meetup); // Помилка: Конвертування циклі
172172
![](json-meetup.svg)
173173

174174

175-
## За винятком та трансформацією: replacer
175+
## Виключення та перетворення: replacer
176176

177177
Повний синтаксис `JSON.stringify`:
178178

@@ -440,9 +440,9 @@ JSON може бути настільки складним, наскільки
440440

441441
```js
442442
let json = `{
443-
*!*name*/!*: "Іван", // помилка: ім'я власності без лапок
443+
*!*name*/!*: "Іван", // помилка: ім'я властивості без лапок
444444
"surname": *!*'Smith'*/!*, // помилка: одинарні лапки для значень (повинні бути подвійними)
445-
*!*'isAdmin'*/!*: false // помилка: одинарні лапки для ключей (повинні бути подвійними)
445+
*!*'isAdmin'*/!*: false // помилка: одинарні лапки для ключів (повинні бути подвійними)
446446
"birthday": *!*new Date(2000, 2, 3)*/!*, // помилка: не дозволяється конструктор "new", тільки значення
447447
"friends": [0,1,2,3] // тут все добре
448448
}`;

2-ui/1-document/04-searching-elements-dom/article.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
Властивості навігації по DOM чудові, коли елементи розташовані близько один до одного. А якщо ні? Як отримати довільний елемент сторінки?
44

5-
Для цього існують додаткові методи пошуку.
5+
Для цього в DOM існують додаткові методи пошуку.
66

77
## document.getElementById або просто id
88

9-
Якщо елемент має атрибут `id`, ми можемо отримати його за допомогою методу `document.getElementById(id)`, незалежно від того, де він знаходиться.
9+
Якщо елемент має атрибут `id`, ми можемо отримати його викликом `document.getElementById(id)`, незалежно від того, де він знаходиться.
1010

1111
Наприклад:
1212

@@ -42,7 +42,7 @@
4242
</script>
4343
```
4444

45-
...Але це лише якщо ми не оголошуємо змінну JavaScript з тим самим ім’ям, інакше вона матиме пріоритет:
45+
...Але це лише якщо ми не оголосили змінну JavaScript з таким же ім’ям, інакше вона матиме пріоритет:
4646

4747
```html run untrusted height=0
4848
<div id="elem"></div>
@@ -57,28 +57,28 @@
5757
```warn header="Будь ласка, не використовуйте id-іменовані глобальні змінні для доступу до елементів"
5858
Ця поведінка описана [у специфікації](https://html.spec.whatwg.org/multipage/window-object.html#named-access-on-the-window-object), тож це свого роду стандарт. Але він підтримується в основному для сумісності.
5959
60-
Браузер намагається нам допомогти, змішуючи простори імен JS і DOM. Це добре для простих сценаріїв, вбудованих у HTML, але загалом це не дуже добре. Можуть виникнути конфлікти імен. Крім того, коли хтось читає JS-код і не бачить HTML, незрозуміло, звідки приходить змінна.
60+
Браузер намагається нам допомогти, змішуючи простори імен JS і DOM. Це зручно для простих скриптів, які знаходяться прямо в HTML, але загалом це не дуже добре. Можуть виникнути конфлікти імен. Крім того, коли хтось читає JS-код і не бачить HTML, незрозуміло, звідки приходить змінна.
6161
62-
Тут у підручнику ми використовуємо `id` для прямого посилання на елемент для стислості, коли очевидно, звідки цей елемент походить.
62+
У цьому посібнику ми будемо використовувати `id` для прямого посилання на елемент для стислості, коли очевидно, звідки цей елемент походить.
6363
64-
У реальному житті краще надавати перевагу `document.getElementById`.
64+
У реальному житті краще використовувати `document.getElementById`.
6565
```
6666

67-
```smart header="`id` має бути унікальним"
68-
`id` має бути унікальним. У документі може бути лише один елемент із заданим `id`.
67+
```smart header="Значення `id` має бути унікальним"
68+
Значення `id` має бути унікальним. У документі повинен бути лише один елемент із заданим `id`.
6969

70-
Якщо є кілька елементів з однаковим `id`, то поведінка методів, які його використовують, буде непередбачуваною, наприклад. `document.getElementById` може повертати будь-який з таких елементів випадковим чином. Тому, будь ласка, дотримуйтеся правила та залишайте `id` унікальним.
70+
Якщо є кілька елементів з однаковим `id`, то поведінка методів, які його використовують є непередбачуваною. Наприклад, `document.getElementById` може повертати будь-який з таких елементів випадковим чином. Тому, будь ласка, дотримуйтеся правила та залишайте `id` унікальним.
7171
```
7272
7373
```warn header="Лише `document.getElementById`, а не `anyElem.getElementById`"
74-
Метод `getElementById` можна викликати лише для об’єкта `document`. Він шукає вказаний `id` у всьому документі.
74+
Метод `getElementById` може бути викликаний лише на об’єкті `document`. Він шукає вказаний `id` у всьому документі.
7575
```
7676

7777
## querySelectorAll [#querySelectorAll]
7878

79-
До сьогодні найуніверсальніший метод -- це `elem.querySelectorAll(css)`, він повертає всі елементи всередині `elem`, що відповідають заданому CSS-селектору.
79+
Найбільш гнучким методом є `elem.querySelectorAll(css)`, який повертає всі елементи всередині `elem`, що відповідають заданому CSS-селектору.
8080

81-
Тут ми шукаємо всі елементи `<li>`, які є останніми дочірніми:
81+
Тут ми шукаємо всі елементи `<li>`, які є останніми дочірніми елементами:
8282

8383
```html run
8484
<ul>
@@ -103,22 +103,22 @@
103103
Цей метод дійсно потужний, оскільки можна використовувати будь-який CSS-селектор.
104104

105105
```smart header="Також можна використовувати псевдокласи"
106-
Псевдокласи в CSS-селекторі, такі як `:hover` і `:active`, також підтримуються. Наприклад, `document.querySelectorAll(':hover')` поверне колекцію елементів, що знаходяться під курсором миші (у порядку вкладення: від крайнього `<html>` до найбільш вкладеного).
106+
Псевдокласи в CSS-селекторі, такі як `:hover` і `:active`, також підтримуються. Наприклад, `document.querySelectorAll(':hover')` поверне колекцію елементів, що знаходяться під курсором миші (у порядку вкладення: від зовнішнього `<html>` до найбільш вкладеного).
107107
```
108108

109109
## querySelector [#querySelector]
110110

111111
Виклик `elem.querySelector(css)` повертає перший елемент, що відповідає даному CSS-селектору.
112112

113-
Іншими словами, результат такий самий, як і `elem.querySelectorAll(css)[0]`, але останній шукає *всі* елементи та вибирає один, а `elem.querySelector` просто шукає один. Тому його писати швидше і коротше.
113+
Іншими словами, результат такий самий, як і `elem.querySelectorAll(css)[0]`, але він спочатку знайде всі елементи, а потім візьме перший, тоді як `elem.querySelector` знайде лише перший та зупиниться. Цей метод не лише прискорює виконання, а й дозволяє скоротити кількість написаного коду.
114114

115115
## matches
116116

117117
Попередні методи виконували пошук по DOM.
118118

119-
[elem.matches(css)](https://dom.spec.whatwg.org/#dom-element-matches) нічого не шукає, він просто перевіряє, чи відповідає `elem` заданому CSS-селектору. Він повертає `true` або `false`.
119+
Метод [elem.matches(css)](https://dom.spec.whatwg.org/#dom-element-matches) нічого не шукає, він просто перевіряє, чи відповідає `elem` заданому CSS-селектору. Він повертає `true` або `false`.
120120

121-
Цей метод стає в пригоді, коли ми перебираємо елементи (наприклад, у масиві чи чомусь подібному) і намагаємося відфільтрувати ті, які нас цікавлять.
121+
Цей метод стає в нагоді, коли ми перебираємо елементи (наприклад, у масиві чи чомусь подібному) і намагаємося відфільтрувати ті, які нас цікавлять.
122122

123123
Наприклад:
124124

@@ -144,7 +144,7 @@
144144

145145
Метод `elem.closest(css)` шукає найближчого предка, який відповідає CSS-селектору. Сам `elem` також включається в пошук.
146146

147-
Іншими словами, метод `closest` підіймається від елемента і перевіряє кожного з батьків. Якщо він збігається з селектором, пошук припиняється, і повертається предок.
147+
Іншими словами, метод `closest` йде вгору від елемента і перевіряє кожного з батьківських елементів. Якщо він відповідає заданому селектору, пошук припиняється, і повертається знайдений предок.
148148

149149
Наприклад:
150150

@@ -174,10 +174,10 @@
174174

175175
Сьогодні вони здебільшого історичні, оскільки `querySelector` є потужнішим і коротшим для написання.
176176

177-
Тому тут ми розглянемо їх переважно для повноти, тоді як ви все ще можете знайти їх у старому коді.
177+
Тому тут ми розглянемо їх переважно для повноти, тоді як ви все ще можете знайти їх у старих скриптах.
178178

179-
- `elem.getElementsByTagName(tag)` шукає елементи з заданим тегом і повертає їх колекцію. Параметр `tag` також може бути зірочкою `"*"` для "будь-яких тегів".
180-
- `elem.getElementsByClassName(className)` повертає елементи, які мають заданий CSS-клас.
179+
- `elem.getElementsByTagName(tag)` шукає елементи з заданим тегом і повертає колекцію цих елементів. Параметр `tag` також може бути зірочкою `"*"` для "будь-яких тегів".
180+
- `elem.getElementsByClassName(className)` повертає елементи, які мають вказаний CSS-клас.
181181
- `document.getElementsByName(name)` повертає елементи з заданим атрибутом `name` для всього документа. Використовується дуже рідко.
182182

183183
Наприклад:
@@ -219,9 +219,9 @@ let divs = document.getElementsByTagName('div');
219219
```
220220

221221
```warn header="Не забуваємо про літеру `\"s\"`!"
222-
Розробники початківці іноді забувають про літеру `"s"`. Тобто вони намагаються викликати `getElementByTagName` замість <code>getElement<b>s</b>ByTagName</code>.
222+
У новачків у розробці іноді трапляються випадки, коли вони забувають про літеру `"s"`. Тобто вони намагаються викликати метод `getElementByTagName` замість <code>getElement<b>s</b>ByTagName</code>.
223223

224-
Літера `"s"` відсутня в `getElementById`, оскільки повертає один елемент. Але `getElementsByTagName` повертає колекцію елементів, тому всередині є `"s"`.
224+
Літера `"s"` відсутня в назві методу `getElementById`, оскільки він повертає один елемент. А `getElementsByTagName` повертає колекцію елементів, тому всередині є `"s"`.
225225
```
226226
227227
````warn header="Повертає колекцію, а не елемент!"
@@ -363,12 +363,12 @@ document.getElementsByTagName('input')[0].value = 5;
363363
</tbody>
364364
</table>
365365
366-
Найчастіше використовуються `querySelector` і `querySelectorAll`, але `getElement(s)By*` може бути корисним час від часу або знаходитися в старому коді.
366+
Найчастіше використовуються `querySelector` і `querySelectorAll`, але `getElement(s)By*` може бути корисним час від часу або зустрічатися в старих скриптах.
367367
368368
Крім того:
369369
370-
- `elem.matches(css)` існує для того, щоб перевірити, чи відповідає `elem` заданому CSS-селектору.
371-
- `elem.closest(css)` існує для того, щоб шукати найближчого предка, який відповідає заданому CSS-селектору. Сам `elem` також перевіряється.
370+
- Існує метод `elem.matches(css)` , який перевіряє, чи відповідає `elem` заданому CSS-селектору.
371+
- Існує метод `elem.closest(css)` , який шукає найближчого предка, який відповідає заданому CSS-селектору. Сам `elem` також перевіряється.
372372
373373
І згадаймо тут ще один метод перевірки взаємовідносин нащадок-предок, оскільки він іноді стає в нагоді:
374374
- `elemA.contains(elemB)` повертає true, якщо `elemB` знаходиться всередині `elemA` (нащадок `elemA`) або коли `elemA==elemB`.

0 commit comments

Comments
 (0)