-
Notifications
You must be signed in to change notification settings - Fork 180
Methods of primitives #10
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
Changes from 1 commit
2bf4a57
0bf5087
471412a
127a02d
4bc3284
3d51eff
3403c98
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,22 +1,22 @@ | ||
| # Methods of primitives | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Article title not translated |
||
|
|
||
| JavaScript дозволяє працювати з прімітивамі (рядок, чісла, і т.д. ) так саме як з об'єктами. | ||
| JavaScript дозволяє працювати з примітивами (рядок, числа, і т.д. ) так саме як з об'єктами. | ||
|
|
||
| Вони також надають методи для роботи. Ми вивчимо їх найближчим часом, але спочатку ми подивимось як воно працює, тому що примітиви не є об'єктами (і тут ми зробимо це ще більш зрозумілим). | ||
|
|
||
| Давайте розглянемо різніцю між прімітивамі та об'єктами. | ||
| Давайте розглянемо різницю між примітивами та об'єктами. | ||
|
|
||
| Прімітив | ||
| Примітив | ||
|
|
||
| - є Is a value of a primitive type. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove this line "Is a value of a primitive type." |
||
| - існує 6 типів примітивів: `string`, `number`, `boolean`, `symbol`, `null` and `undefined`. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ..., |
||
|
|
||
| Об'єкт | ||
|
|
||
| - можливо зберігаті декілька значень як властівості. | ||
| - може бути створений за допомогою `{}`, на приклад: `{name: "John", age: 30}`. Існує інщі об'єкті в JavaScript; функції - це теж об'єкти. | ||
| - можливо зберігати декілька значень як властивості. | ||
| - може бути створений за допомогою `{}`, на приклад: `{name: "John", age: 30}`. Існує інші об'єкті в JavaScript; функції - це теж об'єкти. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "В JavaScript існують й інші об'єкти; функції - це теж об'єкти." |
||
|
|
||
| Одна з цікавіх речей щодо об'єктів полягає в тому, що ми можемо зберігати функцію як одну з його властивостей. | ||
| Одна з цікавих речей щодо об'єктів полягає в тому, що ми можемо зберігати функцію як одну з його властивостей. | ||
|
|
||
| ```js run | ||
| let john = { | ||
|
|
@@ -35,20 +35,20 @@ john.sayHi(); // Hi buddy! | |
|
|
||
| Але за все потрібно платити! | ||
|
|
||
| Об'єкти "важче", ніж примітиви. Вони вимагають додаткових ресурсів для підтримки внутрішньої обработки. Але, оскільки властивості і методи дуже корисні в програмуванні, двигун JavaScript намагається оптимізувати їх для зменшення додаткового навантаження. | ||
| Об'єкти "важче", ніж примітиви. Вони вимагають додаткових ресурсів для підтримки внутрішньої обробки. Але, оскільки властивості і методи дуже корисні в програмуванні, двигун JavaScript намагається оптимізувати їх для зменшення додаткового навантаження. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Об'єкти "важчі" за примітиви. |
||
|
|
||
| ## Примітів як об'єкт | ||
| ## Примітив як об'єкт | ||
|
|
||
| Маємо парадокс, з яким стикається автор JavaScript: | ||
|
|
||
| - Є багато речей, які можна було б зробити з примітивом-рядоком або число. Було б здорово отримати доступ до цих методів. | ||
| - Є багато речей, які можна було б зробити з примітивом-рядком або число. Було б здорово отримати доступ до цих методів. | ||
| - Примітиви повинні бути максимально швидкими та легкими. | ||
|
|
||
| Рішення виглядає трошкі дивно, але так і є: | ||
| Рішення виглядає трошки дивно, але так і є: | ||
|
|
||
| 1. Примітиви залишаються примітивами. Лише значення, як хотіли. | ||
| 2. Мова дозволяє отримати доступ до методів та властивостей рядків, чисел, булеанів та символів. | ||
| 3. Колі це трапляється, створюється спеціальний "об'єкт обгортка" з додатковою функціональністью, та потім він зніщується. | ||
| 3. Колі це трапляється, створюється спеціальний "об'єкт обгортка" з додатковою функціональністю, та потім він знищується. | ||
|
|
||
| Для кожного примітиву створюється своя "обгортка": `String`, `Number`, `Boolean` та `Symbol`. Отже, вони містять різні набори методів. | ||
|
|
||
|
|
@@ -62,11 +62,11 @@ let str = "Hello"; | |
| alert( str.toUpperCase() ); // HELLO | ||
| ``` | ||
|
|
||
| Не сладно, так? Ось що саме трапляється в `str.toUpperCase()`: | ||
| Не складно, так? Ось що саме трапляється в `str.toUpperCase()`: | ||
|
|
||
| 1. Рядок `str` є примітивом. Тому під час звернення до його властивості створюється спеціальний об'єкт, який знає значення рядка і має корисні методи, такі як `toUpperCase ()`. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| 2. Цей метод виконується і повертає новий рядок (що показує `alert`). | ||
| 3. Спеціальний об'єкт руйнується, залишаючи тіки примітів `str`. | ||
| 3. Спеціальний об'єкт руйнується, залишаючи лише примітив `str`. | ||
|
|
||
| Отже примітиви можуть надавати методи, але залишаються "легкими". | ||
|
|
||
|
|
@@ -83,8 +83,8 @@ alert( n.toFixed(2) ); // 1.23 | |
| Ми переглянемо більш конкретні методи у розділах <info:number> та <info:string>. | ||
|
|
||
|
|
||
| ````warn header="Конструктори `String/Number/Boolean` тікі для внутрішнього використання" | ||
| Деякі мови як Java дозволяють створювати "об'єкт обгортку" для примітивів явно використовуючі сінтакс як `new Number(1)` або `new Boolean(false)`. | ||
| ````warn header="Конструктори `String/Number/Boolean` лише для внутрішнього використання" | ||
| Деякі мови як Java дозволяють створювати "об'єкт обгортку" для примітивів явно використовуючи синтаксис як `new Number(1)` або `new Boolean(false)`. | ||
|
|
||
| У JavaScript це також можливо з історичних причин, але надзвичайно **не рекомендується**. Це призведе до непередбачуваних речей. | ||
|
|
||
|
|
@@ -118,7 +118,7 @@ let num = Number("123"); // convert a string to number | |
|
|
||
|
|
||
| ````warn header="null/undefined не мають методів" | ||
| Винятки становлять спеціальні примітиви `null` і `undefined`. Вони не мають відповідних "об'єктів обгортк" і не надають ніяких методів. Ми можемо назвати їх "найпримітивнішими". | ||
| Винятки становлять спеціальні примітиви `null` і `undefined`. Вони не мають відповідних "об'єктів обгорток" і не надають ніяких методів. Ми можемо назвати їх "найпримітивнішими". | ||
|
|
||
| Спроба доступу до властивості такого значення дасть помилку: | ||
|
|
||
|
|
@@ -129,4 +129,4 @@ alert(null.test); // error | |
| ## Виводи | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's better to translate "Summary" as "Висновки" or "Підсумки" |
||
|
|
||
| - Примітиви, крім `null` і `undefined`, дають багато корисних методів. Ми вивчимо їх у наступних розділах. | ||
| - Формально, ці методи працюють через тимчасові об'єкти, але двигун JavaScript оптимізован для швидкого виконання цих операцій, тому нам не треба хвілюватися. | ||
| - Формально, ці методи працюють через тимчасові об'єкти, але двигун JavaScript оптимізован для швидкого виконання цих операцій, тому нам не треба хвилюватися. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.