Skip to content

Commit 292d90e

Browse files
authored
Fixed typos and made explanations simpler (#702)
Some of sentences were correct, but they were "unnatural" in Ukrainian and make understanding more difficult.
1 parent 75a04ed commit 292d90e

File tree

1 file changed

+21
-21
lines changed
  • 1-js/05-data-types/01-primitives-methods

1 file changed

+21
-21
lines changed

1-js/05-data-types/01-primitives-methods/article.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Методи примітивів
22

3-
JavaScript дозволяє працювати з примітивами (рядок, число, тощо) так само як з об’єктами. Вони також надають методи для роботи. Ми вивчимо їх найближчим часом, але спочатку подивимось як воно працює, тому що примітиви не є об’єктами (і тут ми зробимо це ще більш зрозумілим).
3+
JavaScript дозволяє працювати з примітивами (рядок, число, тощо) так, ніби вони об’єкти. Примітиви також забезпечені методами для роботи. Ми вивчимо їх найближчим часом, але спочатку подивимось як воно працює, бо все ж таки примітиви не є об’єктами (і тут ми краще це зрозуміємо).
44

55
Розгляньмо різницю між примітивами та об’єктами.
66

@@ -29,28 +29,28 @@ john.sayHi(); // Привіт, друже!
2929

3030
Отже, ми створили об’єкт `john` з методом `sayHi`.
3131

32-
Вже існує багато вбудованих об’єктів, які працюють з датами, помилками, елементами HTML і т.д. Вони мають різні властивості і методи.
32+
Існує багато вбудованих об’єктів, які працюють з датами, помилками, елементами HTML і т.д. Вони мають різні властивості і методи.
3333

3434
Але за все потрібно платити!
3535

3636
Об’єкти "важчі", ніж примітиви. Вони вимагають додаткових ресурсів для підтримки внутрішньої обробки.
3737

3838
## Примітив як об’єкт
3939

40-
Маємо парадокс, з яким зустрічається автор JavaScript:
40+
Маємо парадокс, з яким зустрівся автор JavaScript:
4141

42-
- Є багато речей, які можна було б зробити з примітивом-рядком або числом. Було б добре отримати доступ до цих методів.
42+
- Є багато речей, які можна було б зробити з примітивом-рядком або числом. Було б дуже добре якби можна було викликати для примітивів відповідні методи.
4343
- Примітиви повинні бути максимально швидкими та легкими.
4444

45-
Рішення виглядає трохи дивно, але так і є:
45+
Рішення, яке він придумав, вийшло трохи незграбним. Та все ж. Ось як це працює в JavaScript:
4646

47-
1. Примітиви залишаються примітивами. Лише значення, як ви і хотіли.
48-
2. JavaScript дозволяє отримати доступ до методів та властивостей рядків, чисел, булеанів та символів.
49-
3. Для цього створюється спеціальний "об’єкт обгортка" з додатковою функціональністю, який потім знищується.
47+
1. Примітиви залишаються примітивами. В них, як і задумано, є лише одне значення.
48+
2. Але JavaScript дозволяє отримати доступ до методів та властивостей рядків, чисел, булеанів та символів.
49+
3. Для цього створюється спеціальний "об’єкт-обгортка" (англ. object wrapper) з додатковою функціональністю, який потім знищується.
5050

51-
Для кожного примітиву створюється своя "обгортка": `String`, `Number`, `Boolean`, `Symbol` та `BigInt`. Отже, вони містять різні набори методів.
51+
Для кожного примітиву створюється своя "обгортка": `String`, `Number`, `Boolean`, `Symbol` та `BigInt`. Ну й вони містять різні набори методів.
5252

53-
Наприклад: існує такий метод для рядка, як [str.toUpperCase()](https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase), який поверне рядок `str` з великими літерами.
53+
Наприклад: існує такий метод для рядка, як [str.toUpperCase()](https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase), який поверне рядок `str` з великими літерами.
5454

5555
Ось як він працює:
5656

@@ -62,13 +62,13 @@ alert( str.toUpperCase() ); // ПРИВІТ
6262

6363
Не складно, так? Ось що саме трапляється в `str.toUpperCase()`:
6464

65-
1. Рядок `str` є примітивом. Тому під час звернення до його властивості створюється спеціальний об’єкт, який знає значення рядка і має корисні методи, такі як `toUpperCase()`.
66-
2. Цей метод виконується і повертає новий рядок (що показує `alert`).
67-
3. Спеціальний об’єкт руйнується, залишаючи лише примітив `str`.
65+
1. Рядок `str` є примітивом. Тому в момент, коли треба звернутись до його властивості, створюється спеціальний об’єкт, який знає значення рядка і має корисні методи, такі як `toUpperCase()`.
66+
2. Цей метод виконується і повертає новий рядок (який передається в `alert`).
67+
3. Спеціальний об’єкт знищується, і в пам'яті залишається лише сам примітив `str`.
6868

6969
Отже, примітиви можуть надавати методи, але залишаються "легкими".
7070

71-
Двигун JavaScript добре оптимізує цей процес. Він навіть може пропустити створення додаткового об’єкта взагалі. Але він все ще повинен дотримуватися специфікації і вести себе так, наче він її створює.
71+
Рушій JavaScript добре оптимізує цей процес. Він навіть може взагалі пропустити створення додаткового об’єкта-обгортки. Але навіть в таких ситуаціях він поводиться так, наче він той об'єкт-обгортку створив.
7272

7373
Число має свої методи, наприклад: [toFixed(n)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) - округлює число до заданої точності:
7474

@@ -81,8 +81,8 @@ alert( n.toFixed(2) ); // 1.23
8181
Ми переглянемо більш конкретні методи у розділах <info:number> та <info:string>.
8282

8383

84-
````warn header="Конструктори `String/Number/Boolean` лише для внутрішнього використання"
85-
Деякі мови як Java дозволяють явно створювати "об’єкт обгортку" для примітивів, використовуючи синтаксис як `new Number(1)` або `new Boolean(false)`.
84+
````warn header="Конструктори `String/Number/Boolean` існують лише для внутрішнього використання"
85+
Деякі мови як от Java дозволяють явно створювати "об’єкт-обгортку" для примітивів, використовуючи синтаксис `new Number(1)` або `new Boolean(false)`.
8686

8787
У JavaScript це також можливо з історичних причин, але надзвичайно **не рекомендується**. Це призведе до непередбачуваних речей.
8888

@@ -94,7 +94,7 @@ alert( typeof 0 ); // "number"
9494
alert( typeof new Number(0) ); // "object"!
9595
```
9696

97-
Об’єкти завжди повертають `true` в `if`, отже ми побачимо `alert`:
97+
В JavaScript об’єкти завжди повертають `true` в `if`, отже ми побачимо `alert`:
9898

9999
```js run
100100
let zero = new Number(0);
@@ -104,7 +104,7 @@ if (zero) { // zero є true, тому що це об’єкт
104104
}
105105
```
106106

107-
З іншого боку, використання тих же самих функцій `String/Number/Boolean` без `new` є абсолютно розумною і корисною річчю. Вони перетворюють значення у відповідний тип: рядок, число або булеве значення (примітиву).
107+
З іншого боку, використання тих же самих функцій `String/Number/Boolean`, але без `new` попереду -- це абсолютно розумно і корисно. Без `new` ці функції перетворюють значення у відповідний тип: рядок, число або булеве значення (яке буде примітивом).
108108

109109
Наприклад, це цілком правильно:
110110

@@ -114,8 +114,8 @@ let num = Number("123"); // конвертує рядок в число
114114
````
115115
116116
117-
````warn header="null/undefined не мають методів"
118-
Винятки становлять спеціальні примітиви `null` і `undefined`. Вони не мають відповідних "об’єктів обгорток" і не надають ніяких методів. Ми можемо назвати їх "найпримітивнішими".
117+
````warn header="null/undefined не мають методів"
118+
Примітиви `null` і `undefined` є винятками. Вони не мають відповідних "об’єктів-обгорток" і не забезпечені ніякими методами. Ми можемо назвати їх "найбільш примітивними".
119119
120120
Спроба доступу до властивості такого значення дасть помилку:
121121
@@ -125,5 +125,5 @@ alert(null.test); // помилка
125125

126126
## Підсумки
127127

128-
- Примітиви, крім `null` і `undefined`, дають багато корисних методів. Ми вивчимо їх у наступних розділах.
128+
- Примітиви (крім `null` і `undefined`) забезпечені багатьма корисними методами. Ми вивчимо їх у наступних розділах.
129129
- Формально, ці методи працюють через тимчасові об’єкти, але двигун JavaScript оптимізовано для швидкого виконання цих операцій, тому нам не треба хвилюватися.

0 commit comments

Comments
 (0)