Skip to content

Commit 7d41c5e

Browse files
authored
Review 'Data Types' (#284)
1 parent a8c88df commit 7d41c5e

File tree

1 file changed

+32
-32
lines changed

1 file changed

+32
-32
lines changed

1-js/02-first-steps/05-types/article.md

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

33
Значення в JavaScript завжди має певний тип даних. Наприклад, рядок або число.
44

5-
В JavaScript є вісім основних типів даних. В цьому розділі ми розглянемо їх в цілому, а в наступних — детально поговоримо про кожен з них.
5+
У JavaScript є вісім основних типів даних. У цьому розділі ми розглянемо їх в цілому, а в наступних — детально поговоримо про кожен з них.
66

77
Ми можемо призначити змінній будь-який тип даних. Наприклад, в один момент змінна може бути рядком, а в інший - числом:
88

@@ -12,7 +12,7 @@ let message = "привіт";
1212
message = 123456;
1313
```
1414

15-
Мови програмування, які дозволяють таке робити, називаються "динамічно типізованими". Мається на увазі, що типи даних визначені, але змінні не прив’язанні до жодного типу.
15+
Мови програмування, які дають змогу таке робити, називаються "динамічно типізованими". Мається на увазі, що типи даних визначені, але змінні не прив’язанні до жодного типу.
1616

1717
## Число (number)
1818

@@ -23,9 +23,9 @@ n = 12.345;
2323

2424
Тип _number_ представляє і цілі числа, і числа з рухомою точкою.
2525

26-
Є багато операцій, що можна робити с числами, наприклад, множення `*`, ділення `/`, додавання `+`, віднімання `-` тощо.
26+
Є багато операцій, що можна робити з числами, наприклад, множення `*`, ділення `/`, додавання `+`, віднімання `-` тощо.
2727

28-
Окрім звичайних чисел, існують так звані "спеціальні числові значення", що також мають відношення до цього типу даних: `Infinity`, `-Infinity` і `NaN`.
28+
Окрім звичайних чисел, є так звані "спеціальні числові значення", що також мають відношення до цього типу даних: `Infinity`, `-Infinity` і `NaN`.
2929

3030
- `Infinity` являє собою математичну [нескінченність](https://uk.wikipedia.org/wiki/Нескінченність) ∞. Це спеціальне значення, що є більшим за будь-яке число.
3131

@@ -46,67 +46,67 @@ n = 12.345;
4646
alert("not a number" / 2); // NaN, таке ділення є помилковим
4747
```
4848

49-
`NaN` є "причепливим" ("заразливим"). Будь-які наступні операції з `NaN` будуть повертати `NaN`:
49+
`NaN` є "причепливим" ("заразливим"). Будь-яка подальша математична операція з `NaN` повертає `NaN`:
5050

5151
```js run
5252
alert("not a number" / 2 + 5); // NaN
5353
```
5454

55-
Таким чином, якщо у математичному виразі десь є `NaN`, це значення буде поширюватися на весь результат.
55+
Отже, якщо у математичному виразі десь є `NaN`, це значення буде поширюватися на весь результат.
5656

5757
```smart header="Математичні операції є безпечними"
58-
Обчислювання є "безпечним" в JavaScript. Ми можемо робити будь-що: ділити на нуль, звертатися до нечислового рядка як до числа тощо.
58+
Обчислення є "безпечним" в JavaScript. Ми можемо робити будь-що: ділити на нуль, звертатися до нечислового рядка як до числа тощо.
5959
6060
Виконання скрипта ніколи не зупиниться з фатальною помилкою (не "вмре"). У найгіршому випадку ми отримаємо в результаті `NaN`.
6161
```
6262

6363
Спеціальні числові значення формально належать до типу "number". Хоча, звісно, вони не є числами у загальноприйнятому розумінні.
6464

65-
Докладніше роботу с числами ми розглянемо у розділі <info:number>.
65+
Докладніше роботу з числами ми розглянемо у розділі <info:number>.
6666

6767
## BigInt [#bigint-type]
6868

69-
В JavaScript, тип "number" не може вміщувати числа більші за <code>(2<sup>53</sup>-1)</code> (це `9007199254740991`), або менші за <code>-(2<sup>53</sup>-1)</code> для від’ємних чисел. Це технічне обмеження, викликане їх внутрішньою реалізацією.
69+
У JavaScript, тип "number" не може містити числа більші за <code>(2<sup>53</sup>-1)</code> (це `9007199254740991`), або менші за <code>-(2<sup>53</sup>-1)</code> для від’ємних чисел. Це технічне обмеження, спричинене їхньою внутрішньою реалізацією.
7070

7171
Для більшості потреб цього достатньо, але бувають випадки, коли нам потрібні дійсно великі числа, наприклад, для криптографії або мікроксекундних часових міток (timestamps).
7272

7373
Нещодавно в мову був доданий тип `BigInt` для представлення цілих чисел довільної довжини.
7474

75-
Значення з типом `BigInt` створюється шляхом додавання `n` в кінець цілого числа:
75+
Значення з типом `BigInt` створюється через додавання `n` у кінець цілого числа:
7676

7777
```js
78-
// буква "n" в кінці означає, що це число типу BigInt
78+
// буква "n" у кінці означає, що це число типу BigInt
7979
const bigInt = 1234567890123456789012345678901234567890n;
8080
```
8181

8282
Через те, що тип `BigInt` рідко використовується, ми не розглядатимемо його в цьому розділі, проте ми винесли його в окремий розділ <info:bigint>. Прочитайте його, якщо вам потрібні такі великі числа.
8383

8484

85-
```smart header="Проблеми з сумісністю"
85+
```smart header="Проблеми із сумісністю"
8686
Цієї миті, підтримка типу `BigInt` є в останніх версіях Firefox/Chrome/Edge/Safari, але не в IE.
8787
```
8888

8989
На сайті *MDN* є [таблиця сумісності](https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Сумісність_з_веб-переглядачами), де показано, які версії браузерів підтримують тип `BigInt`.
9090

9191
## Рядок (string)
9292

93-
Рядок в JavaScript повинен бути оточений лапками.
93+
Рядок у JavaScript має бути оточений лапками.
9494

9595
```js
9696
let str = "Привіт";
9797
let str2 = 'Одинарні лапки також дозволяються';
9898
let phrase = `так можна вставляти ${str}`;
9999
```
100100

101-
В JavaScript існує три типи лапок.
101+
У JavaScript є три типи лапок.
102102

103103
1. Подвійні лапки: `"Привіт"`.
104104
2. Одинарні лапки: `'Привіт'`.
105105
3. Зворотні лапки: <code>&#96;Привіт&#96;</code>.
106106

107107
Подвійні та одинарні лапки є "звичайними". Тобто немає ніякої різниці, які саме використовувати.
108108

109-
Зворотні лапки є розширенням функціональності. Вони дозволяють вбудовувати змінні та вирази в рядок, обрамляючи їх в `${…}`, наприклад:
109+
Зворотні лапки є розширенням функціональності. Вони дають змогу вбудовувати змінні та вирази в рядок, обрамляючи їх в `${…}`, наприклад:
110110

111111
```js run
112112
let name = "Іван";
@@ -125,12 +125,12 @@ alert(`результат: *!*${1 + 2}*/!*`); // результат: 3
125125
alert("результат: ${1 + 2}"); // результат: ${1 + 2} (подвійні лапки не мають ніякого впливу)
126126
```
127127

128-
Більш детально ми будемо висвітлювати рядки у розділі <info:string>.
128+
Більш детально ми будемо висвітлювати рядки в розділі <info:string>.
129129

130-
```smart header="Не існує типу *символ* (*character*)."
131-
У деяких мовах існує спеціальний тип "character" для позначення єдиного символу. Наприклад, в мовах C та Java це `char`.
130+
```smart header="Немає типу *символ* (*character*)."
131+
У деяких мовах є спеціальний тип "character" для позначення єдиного символу. Наприклад, у мовах C та Java це `char`.
132132
133-
В JavaScript не існує такого типу. Є єдиний тип: `string`. Рядок може містити нуль символів (бути пустим), один символ або більше.
133+
У JavaScript немає такого типу. Є єдиний тип: `string`. Рядок може містити нуль символів (бути пустим), один символ або більше.
134134
```
135135

136136
## Булевий або логічний тип (boolean)
@@ -170,7 +170,7 @@ let age = null;
170170

171171
Це лише спеціальне значення, яке представляє "нічого", "порожнє" або "невідоме значення".
172172

173-
В наведеному вище коді зазначено, що значення змінної `age` невідоме.
173+
У наведеному вище коді зазначено, що значення змінної `age` невідоме.
174174

175175
## Значення "undefined"
176176

@@ -197,23 +197,23 @@ age = undefined;
197197
alert(age); // "undefined"
198198
```
199199

200-
...Але ми не рекомендуємо так робити. Як правило, ми використовуємо `null`, щоб присвоїти змінній значення "порожнє" або "невідоме", тоді як `undefined` зарезервоване для позначення початкового значення для неприсвоєних речей.
200+
...Але ми не рекомендуємо так робити. Як правило, ми використовуємо `null`, щоби присвоїти змінній значення "порожнє" або "невідоме", тоді як `undefined` зарезервоване для позначення початкового значення для неприсвоєних речей.
201201

202202
## Об’єкти (object) та символи (symbol)
203203

204204
Тип `object` є особливим типом.
205205

206-
Всі інші типи називаються "примітивами", тому що їх значення можуть містити тільки один елемент (це може бути рядок, число, або будь-що інше). В об’єктах же зберігаються колекції даних і більш складні структури.
206+
Усі інші типи називаються "примітивами", тому що їхні значення можуть містити тільки один елемент (це може бути рядок, число, або будь-що інше). В об’єктах же зберігаються колекції даних і більш складні структури.
207207

208-
Об’єкти є важливою частиною мови, тому ми окремо розглянемо їх в розділі <info:object> після того, як дізнаємося більше про примітиви.
208+
Об’єкти є важливою частиною мови, тому ми окремо розглянемо їх у розділі <info:object> після того, як дізнаємося більше про примітиви.
209209

210-
Тип `symbol` використовується для створення унікальних ідентифікаторів в об’єктах. Ми згадали цей тип для повноти, проте детальніше вивчимо його після об’єктів.
210+
Тип `symbol` використовується для створення унікальних ідентифікаторів в об’єктах. Ми згадали цей тип для повноти, проте докладніше вивчимо його після об’єктів.
211211

212212
## Оператор typeof [#type-typeof]
213213

214214
Оператор `typeof` повертає тип аргументу. Це корисно, коли ми хочемо обробляти значення різних типів по-різному або просто хочемо зробити швидку перевірку.
215215

216-
Виклик `typeof x` повертає рядок з назвою типу:
216+
Виклик `typeof x` повертає рядок із назвою типу:
217217

218218
```js
219219
typeof undefined // "undefined"
@@ -244,22 +244,22 @@ typeof alert // "function" (3)
244244
Останні три рядки можуть потребувати додаткового пояснення:
245245

246246
1. `Math` — це вбудований об’єкт, який забезпечує математичні операції. Ми вивчимо його в розділі <info:number>. Тут він використаний лише як приклад об’єкта.
247-
2. Результатом `typeof null` є `"object"`. Це офіційно визнана помилка в поведінці `typeof`, що існує ще з ранніх днів JavaScript і зберігається для сумісності. Безперечно, `null` не є об’єктом. Це особливе значення з власним типом. В цьому випадку поведінка `typeof` некоректна.
247+
2. Результатом `typeof null` є `"object"`. Це офіційно визнана помилка поведінки `typeof`, що є ще з ранніх днів JavaScript і зберігається для сумісності. Безперечно, `null` не є об’єктом. Це особливе значення з власним типом. У цьому разі поведінка `typeof` некоректна.
248248
3. Результатом `typeof alert` є `"function"`, тому що `alert` — це функція. Ми будемо вивчати функції в наступних розділах, де ми також побачимо, що в JavaScript немає спеціального типу "function". Функції належать до типу "об’єкт". Але `typeof` трактує їх по-іншому, повертаючи `"function"`. Це також присутнє з ранніх днів JavaScript. Технічно, така поведінка не зовсім правильна, але може бути зручною на практиці.
249249

250250
```smart header="Синтаксис `typeof(x)`"
251251
Можливо ви зустрічали інший синтаксис: `typeof(x)`. Це те саме, що `typeof x`.
252252

253-
Щоб було зрозуміло: `typeof` -- це оператор, а не функція. Тут дужки не є частиною `typeof`. Це щось на кшталт математичних дужок для групування.
253+
Щоби було зрозуміло: `typeof` -- це оператор, а не функція. Тут дужки не є частиною `typeof`. Це щось на кшталт математичних дужок для групування.
254254

255-
Зазвичай, такі дужки містять математичні вирази, як `(2 + 2)`, але тут вони містять лише один аргумент `(x)`. Ці дужки дозволяють опустити пробіл між оператором `typeof` та його аргументом, і декому це подобається.
255+
Зазвичай, такі дужки містять математичні вирази, як `(2 + 2)`, але тут вони містять лише один аргумент `(x)`. Ці дужки дають змогу опустити пробіл між оператором `typeof` та його аргументом, і декому це подобається.
256256

257257
Тому вони надають перевагу синтаксису `typeof(x)`, проте синтаксис `typeof x` набагато поширеніший.
258258
```
259259
260260
## Підсумки
261261
262-
В JavaScript існує 8 основних типів.
262+
У JavaScript є 8 основних типів.
263263
264264
- `number` для будь-яких чисел: цілих або з рухомою точкою; цілі числа обмежені до <code>±(2<sup>53</sup>-1)</code>.
265265
- `bigint` для цілих чисел довільної довжини.
@@ -270,10 +270,10 @@ typeof alert // "function" (3)
270270
- `object` для більш складних структур даних.
271271
- `symbol` для унікальних ідентифікаторів.
272272
273-
Оператор `typeof` дозволяє нам бачити, який тип зберігається в змінній.
273+
Оператор `typeof` дає змогу нам бачити, який тип зберігається в змінній.
274274
275275
- Зазвичай використовують синтаксис `typeof x`, проте `typeof(x)` також можливий.
276-
- Повертає рядок з назвою типу, як-от `"string"`.
276+
- Повертає рядок із назвою типу, як-от `"string"`.
277277
- Для `null` повертає `"object"` —- це помилка в мові, `null` насправді не об’єкт.
278278
279-
В наступних розділах ми зосередимося на примітивних значеннях, а коли ознайомимося з ними, то перейдемо до об’єктів.
279+
У наступних розділах ми зосередимося на примітивних значеннях, а коли ознайомимося з ними, то перейдемо до об’єктів.

0 commit comments

Comments
 (0)