You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/05-types/article.md
+32-32Lines changed: 32 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Значення в JavaScript завжди має певний тип даних. Наприклад, рядок або число.
4
4
5
-
В JavaScript є вісім основних типів даних. В цьому розділі ми розглянемо їх в цілому, а в наступних — детально поговоримо про кожен з них.
5
+
У JavaScript є вісім основних типів даних. У цьому розділі ми розглянемо їх в цілому, а в наступних — детально поговоримо про кожен з них.
6
6
7
7
Ми можемо призначити змінній будь-який тип даних. Наприклад, в один момент змінна може бути рядком, а в інший - числом:
8
8
@@ -12,7 +12,7 @@ let message = "привіт";
12
12
message =123456;
13
13
```
14
14
15
-
Мови програмування, які дозволяють таке робити, називаються "динамічно типізованими". Мається на увазі, що типи даних визначені, але змінні не прив’язанні до жодного типу.
15
+
Мови програмування, які дають змогу таке робити, називаються "динамічно типізованими". Мається на увазі, що типи даних визначені, але змінні не прив’язанні до жодного типу.
16
16
17
17
## Число (number)
18
18
@@ -23,9 +23,9 @@ n = 12.345;
23
23
24
24
Тип _number_ представляє і цілі числа, і числа з рухомою точкою.
25
25
26
-
Є багато операцій, що можна робити с числами, наприклад, множення `*`, ділення `/`, додавання `+`, віднімання `-` тощо.
26
+
Є багато операцій, що можна робити з числами, наприклад, множення `*`, ділення `/`, додавання `+`, віднімання `-` тощо.
27
27
28
-
Окрім звичайних чисел, існують так звані "спеціальні числові значення", що також мають відношення до цього типу даних: `Infinity`, `-Infinity` і `NaN`.
28
+
Окрім звичайних чисел, є так звані "спеціальні числові значення", що також мають відношення до цього типу даних: `Infinity`, `-Infinity` і `NaN`.
29
29
30
30
-`Infinity` являє собою математичну [нескінченність](https://uk.wikipedia.org/wiki/Нескінченність) ∞. Це спеціальне значення, що є більшим за будь-яке число.
31
31
@@ -46,67 +46,67 @@ n = 12.345;
46
46
alert("not a number"/2); // NaN, таке ділення є помилковим
47
47
```
48
48
49
-
`NaN` є "причепливим" ("заразливим"). Будь-які наступні операції з `NaN`будуть повертати`NaN`:
49
+
`NaN` є "причепливим" ("заразливим"). Будь-яка подальша математична операція з `NaN`повертає`NaN`:
50
50
51
51
```js run
52
52
alert("not a number"/2+5); // NaN
53
53
```
54
54
55
-
Таким чином, якщо у математичному виразі десь є `NaN`, це значення буде поширюватися на весь результат.
55
+
Отже, якщо у математичному виразі десь є `NaN`, це значення буде поширюватися на весь результат.
56
56
57
57
```smart header="Математичні операції є безпечними"
58
-
Обчислювання є "безпечним" в JavaScript. Ми можемо робити будь-що: ділити на нуль, звертатися до нечислового рядка як до числа тощо.
58
+
Обчислення є "безпечним" в JavaScript. Ми можемо робити будь-що: ділити на нуль, звертатися до нечислового рядка як до числа тощо.
59
59
60
60
Виконання скрипта ніколи не зупиниться з фатальною помилкою (не "вмре"). У найгіршому випадку ми отримаємо в результаті `NaN`.
61
61
```
62
62
63
63
Спеціальні числові значення формально належать до типу "number". Хоча, звісно, вони не є числами у загальноприйнятому розумінні.
64
64
65
-
Докладніше роботу с числами ми розглянемо у розділі <info:number>.
65
+
Докладніше роботу з числами ми розглянемо у розділі <info:number>.
66
66
67
67
## BigInt [#bigint-type]
68
68
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> для від’ємних чисел. Це технічне обмеження, спричинене їхньою внутрішньою реалізацією.
70
70
71
71
Для більшості потреб цього достатньо, але бувають випадки, коли нам потрібні дійсно великі числа, наприклад, для криптографії або мікроксекундних часових міток (timestamps).
72
72
73
73
Нещодавно в мову був доданий тип `BigInt` для представлення цілих чисел довільної довжини.
74
74
75
-
Значення з типом `BigInt` створюється шляхом додавання `n`в кінець цілого числа:
75
+
Значення з типом `BigInt` створюється через додавання `n`у кінець цілого числа:
76
76
77
77
```js
78
-
// буква "n" в кінці означає, що це число типу BigInt
78
+
// буква "n" у кінці означає, що це число типу BigInt
Через те, що тип `BigInt` рідко використовується, ми не розглядатимемо його в цьому розділі, проте ми винесли його в окремий розділ <info:bigint>. Прочитайте його, якщо вам потрібні такі великі числа.
83
83
84
84
85
-
```smart header="Проблеми з сумісністю"
85
+
```smart header="Проблеми із сумісністю"
86
86
Цієї миті, підтримка типу `BigInt` є в останніх версіях Firefox/Chrome/Edge/Safari, але не в IE.
87
87
```
88
88
89
89
На сайті *MDN* є [таблиця сумісності](https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Сумісність_з_веб-переглядачами), де показано, які версії браузерів підтримують тип `BigInt`.
90
90
91
91
## Рядок (string)
92
92
93
-
Рядок в JavaScript повинен бути оточений лапками.
93
+
Рядок у JavaScript має бути оточений лапками.
94
94
95
95
```js
96
96
let str ="Привіт";
97
97
let str2 ='Одинарні лапки також дозволяються';
98
98
let phrase =`так можна вставляти ${str}`;
99
99
```
100
100
101
-
В JavaScript існує три типи лапок.
101
+
У JavaScript є три типи лапок.
102
102
103
103
1. Подвійні лапки: `"Привіт"`.
104
104
2. Одинарні лапки: `'Привіт'`.
105
105
3. Зворотні лапки: <code>`Привіт`</code>.
106
106
107
107
Подвійні та одинарні лапки є "звичайними". Тобто немає ніякої різниці, які саме використовувати.
108
108
109
-
Зворотні лапки є розширенням функціональності. Вони дозволяють вбудовувати змінні та вирази в рядок, обрамляючи їх в `${…}`, наприклад:
109
+
Зворотні лапки є розширенням функціональності. Вони дають змогу вбудовувати змінні та вирази в рядок, обрамляючи їх в `${…}`, наприклад:
alert("результат: ${1 + 2}"); // результат: ${1 + 2} (подвійні лапки не мають ніякого впливу)
126
126
```
127
127
128
-
Більш детально ми будемо висвітлювати рядки у розділі <info:string>.
128
+
Більш детально ми будемо висвітлювати рядки в розділі <info:string>.
129
129
130
-
```smart header="Не існує типу *символ* (*character*)."
131
-
У деяких мовах існує спеціальний тип "character" для позначення єдиного символу. Наприклад, в мовах C та Java це `char`.
130
+
```smart header="Немає типу *символ* (*character*)."
131
+
У деяких мовах є спеціальний тип "character" для позначення єдиного символу. Наприклад, у мовах C та Java це `char`.
132
132
133
-
В JavaScript не існує такого типу. Є єдиний тип: `string`. Рядок може містити нуль символів (бути пустим), один символ або більше.
133
+
У JavaScript немає такого типу. Є єдиний тип: `string`. Рядок може містити нуль символів (бути пустим), один символ або більше.
134
134
```
135
135
136
136
## Булевий або логічний тип (boolean)
@@ -170,7 +170,7 @@ let age = null;
170
170
171
171
Це лише спеціальне значення, яке представляє "нічого", "порожнє" або "невідоме значення".
172
172
173
-
В наведеному вище коді зазначено, що значення змінної `age` невідоме.
173
+
У наведеному вище коді зазначено, що значення змінної `age` невідоме.
174
174
175
175
## Значення "undefined"
176
176
@@ -197,23 +197,23 @@ age = undefined;
197
197
alert(age); // "undefined"
198
198
```
199
199
200
-
...Але ми не рекомендуємо так робити. Як правило, ми використовуємо `null`, щоб присвоїти змінній значення "порожнє" або "невідоме", тоді як `undefined` зарезервоване для позначення початкового значення для неприсвоєних речей.
200
+
...Але ми не рекомендуємо так робити. Як правило, ми використовуємо `null`, щоби присвоїти змінній значення "порожнє" або "невідоме", тоді як `undefined` зарезервоване для позначення початкового значення для неприсвоєних речей.
201
201
202
202
## Об’єкти (object) та символи (symbol)
203
203
204
204
Тип `object` є особливим типом.
205
205
206
-
Всі інші типи називаються "примітивами", тому що їх значення можуть містити тільки один елемент (це може бути рядок, число, або будь-що інше). В об’єктах же зберігаються колекції даних і більш складні структури.
206
+
Усі інші типи називаються "примітивами", тому що їхні значення можуть містити тільки один елемент (це може бути рядок, число, або будь-що інше). В об’єктах же зберігаються колекції даних і більш складні структури.
207
207
208
-
Об’єкти є важливою частиною мови, тому ми окремо розглянемо їх в розділі <info:object> після того, як дізнаємося більше про примітиви.
208
+
Об’єкти є важливою частиною мови, тому ми окремо розглянемо їх у розділі <info:object> після того, як дізнаємося більше про примітиви.
209
209
210
-
Тип `symbol` використовується для створення унікальних ідентифікаторів в об’єктах. Ми згадали цей тип для повноти, проте детальніше вивчимо його після об’єктів.
210
+
Тип `symbol` використовується для створення унікальних ідентифікаторів в об’єктах. Ми згадали цей тип для повноти, проте докладніше вивчимо його після об’єктів.
211
211
212
212
## Оператор typeof [#type-typeof]
213
213
214
214
Оператор `typeof` повертає тип аргументу. Це корисно, коли ми хочемо обробляти значення різних типів по-різному або просто хочемо зробити швидку перевірку.
Останні три рядки можуть потребувати додаткового пояснення:
245
245
246
246
1.`Math` — це вбудований об’єкт, який забезпечує математичні операції. Ми вивчимо його в розділі <info:number>. Тут він використаний лише як приклад об’єкта.
247
-
2. Результатом `typeof null` є `"object"`. Це офіційно визнана помилка в поведінці `typeof`, що існує ще з ранніх днів JavaScript і зберігається для сумісності. Безперечно, `null` не є об’єктом. Це особливе значення з власним типом. В цьому випадку поведінка `typeof` некоректна.
247
+
2. Результатом `typeof null` є `"object"`. Це офіційно визнана помилка поведінки `typeof`, що є ще з ранніх днів JavaScript і зберігається для сумісності. Безперечно, `null` не є об’єктом. Це особливе значення з власним типом. У цьому разі поведінка `typeof` некоректна.
248
248
3. Результатом `typeof alert` є `"function"`, тому що `alert` — це функція. Ми будемо вивчати функції в наступних розділах, де ми також побачимо, що в JavaScript немає спеціального типу "function". Функції належать до типу "об’єкт". Але `typeof` трактує їх по-іншому, повертаючи `"function"`. Це також присутнє з ранніх днів JavaScript. Технічно, така поведінка не зовсім правильна, але може бути зручною на практиці.
249
249
250
250
```smart header="Синтаксис `typeof(x)`"
251
251
Можливо ви зустрічали інший синтаксис: `typeof(x)`. Це те саме, що `typeof x`.
252
252
253
-
Щоб було зрозуміло: `typeof` -- це оператор, а не функція. Тут дужки не є частиною `typeof`. Це щось на кшталт математичних дужок для групування.
253
+
Щоби було зрозуміло: `typeof` -- це оператор, а не функція. Тут дужки не є частиною `typeof`. Це щось на кшталт математичних дужок для групування.
254
254
255
-
Зазвичай, такі дужки містять математичні вирази, як `(2 + 2)`, але тут вони містять лише один аргумент `(x)`. Ці дужки дозволяють опустити пробіл між оператором `typeof` та його аргументом, і декому це подобається.
255
+
Зазвичай, такі дужки містять математичні вирази, як `(2 + 2)`, але тут вони містять лише один аргумент `(x)`. Ці дужки дають змогу опустити пробіл між оператором `typeof` та його аргументом, і декому це подобається.
256
256
257
257
Тому вони надають перевагу синтаксису `typeof(x)`, проте синтаксис `typeof x` набагато поширеніший.
258
258
```
259
259
260
260
## Підсумки
261
261
262
-
В JavaScript існує 8 основних типів.
262
+
У JavaScript є 8 основних типів.
263
263
264
264
- `number` для будь-яких чисел: цілих або з рухомою точкою; цілі числа обмежені до <code>±(2<sup>53</sup>-1)</code>.
0 commit comments