chore(i18n,curriculum): processed translations - new ukrainian (#44447)

This commit is contained in:
camperbot
2021-12-10 11:14:24 +05:30
committed by GitHub
parent 8651ee1797
commit 0473dedf47
1663 changed files with 156692 additions and 1 deletions

View File

@@ -0,0 +1,57 @@
---
id: 587d7b85367417b2b2512b3a
title: Знаходження переданих у неправильному порядку аргументів під час виклику функції
challengeType: 1
forumTopicId: 301184
dashedName: catch-arguments-passed-in-the-wrong-order-when-calling-a-function
---
# --description--
Продовжуючи обговорення виклику функцій, наступною помилкою може бути пошук аргументів функції, переданих у неправильному порядку. Якщо аргументи відносяться до різних типів, наприклад, функцій з масивами та цілими числами, то це, ймовірно, призведе до помилок в коді. Якщо аргументи відносяться до одного типу (наприклад, усі з них - цілі числа), тоді послідовність коду не матиме сенсу. Переконайтеся, що усі необхідні аргументи розташовано у правильному порядку, щоб уникнути цих проблем.
# --instructions--
Функція `raiseToPower` підносить основу до ступеня. На жаль, його не викликано належним чином - виправіть код так, щоб значення `power` дорівнювало 8.
# --hints--
Ваш код має виправити змінну `power`, щоб вона дорівнювала 2-ом піднесеним до 3 ступеня, а не 3-ом піднесеним до 2 ступеня.
```js
assert(power == 8);
```
Ваш код має використовувати правильний порядок аргументів для виклику функції `raiseToPower`.
```js
assert(code.match(/raiseToPower\(\s*?base\s*?,\s*?exp\s*?\);/g));
```
# --seed--
## --seed-contents--
```js
function raiseToPower(b, e) {
return Math.pow(b, e);
}
let base = 2;
let exp = 3;
let power = raiseToPower(exp, base);
console.log(power);
```
# --solutions--
```js
function raiseToPower(b, e) {
return Math.pow(b, e);
}
let base = 2;
let exp = 3;
let power = raiseToPower(base, exp);
console.log(power);
```

View File

@@ -0,0 +1,69 @@
---
id: 587d7b85367417b2b2512b39
title: Знаходження пропущених відкриваючих та закриваючих дужок після виклику функції
challengeType: 1
forumTopicId: 301185
dashedName: catch-missing-open-and-closing-parenthesis-after-a-function-call
---
# --description--
Коли функція чи метод не приймає жодних аргументів, під час їх виклику ви можете забути додати (порожні) відкриваючі та закриваючі дужки. Зазвичай результат виклику функції зберігається у змінних для подальшого використання у вашому коді. Цю помилку можна розпізнати шляхом вводу змінних значень (або їхніх типів) у консоль, поки одне з них не матиме посилання на функцію замість очікуваного значення, яке вона має повертати.
Змінні у поданому нижче прикладі є різними:
```js
function myFunction() {
return "You rock!";
}
let varOne = myFunction;
let varTwo = myFunction();
```
У випадку `varOne` є функцією `myFunction`, і `varTwo` є рядком `You rock!`.
# --instructions--
Виправте код таким чином, щоб змінна `result` отримала значення, повернене від виклику функції `getNine`.
# --hints--
Ваш код має виправити змінну `result` так, щоб вона була встановлена числом, яке функція `getNine` повертатиме.
```js
assert(result == 9);
```
Ваш код має викликати функцію `getNine`.
```js
assert(code.match(/getNine\(\)/g).length == 2);
```
# --seed--
## --seed-contents--
```js
function getNine() {
let x = 6;
let y = 3;
return x + y;
}
let result = getNine;
console.log(result);
```
# --solutions--
```js
function getNine() {
let x = 6;
let y = 3;
return x + y;
}
let result = getNine();
console.log(result);
```

View File

@@ -0,0 +1,69 @@
---
id: 587d7b84367417b2b2512b35
title: Знаходження неправильно написаних змінних та назв функцій
challengeType: 1
forumTopicId: 301186
dashedName: catch-misspelled-variable-and-function-names
---
# --description--
Методи `console.log()` та `typeof` є двома основними способами перевірки допоміжних значень та типів вихідних програм. Тепер час заглибитися у найпоширеніші різновиди форм, які можуть приймати помилки. Одна помилка на синтаксичному рівні, яку можна допустити при швидкому друці, є звичайною помилкою правопису.
Якщо символ у змінній чи назві функції буде перенесений, відсутній, або ж матиме неправильний регістр, браузер виконуватиме пошук неіснуючого об'єкта та надсилатиме скарги у формі посилання на помилку. Змінні та назви функцій JavaScript є чутливим до регістру літер.
# --instructions--
Виправте дві помилки правопису в коді, щоб розрахунок `netWorkingCapital` працював.
# --hints--
Перевірте правопис двох змінних, використаних у розрахунку netWorkingCapital, щоб вихідні дані консолі показували "Чистий робочий капітал: 2".
```js
assert(netWorkingCapital === 2);
```
У коді не повинно бути жодних випадків змінних, написаних у неправильному регістрі.
```js
assert(!code.match(/recievables/g));
```
Змінна `receivables` коду має бути правильно об'явлена і використана.
```js
assert(code.match(/receivables/g).length == 2);
```
У коді не повинно бути жодних випадків змінних, написаних у неправильному регістрі.
```js
assert(!code.match(/payable;/g));
```
Змінна `payables` коду має бути правильно об'явлена і використана.
```js
assert(code.match(/payables/g).length == 2);
```
# --seed--
## --seed-contents--
```js
let receivables = 10;
let payables = 8;
let netWorkingCapital = recievables - payable;
console.log(`Net working capital is: ${netWorkingCapital}`);
```
# --solutions--
```js
let receivables = 10;
let payables = 8;
let netWorkingCapital = receivables - payables;
console.log(`Net working capital is: ${netWorkingCapital}`);
```

View File

@@ -0,0 +1,63 @@
---
id: 587d7b84367417b2b2512b37
title: Знаходження змішаного використання одинарних та подвійних лапок
challengeType: 1
forumTopicId: 301188
dashedName: catch-mixed-usage-of-single-and-double-quotes
---
# --description--
У JavaScript дозволяє використання як одинарних (`'`), так і подвійних (`"`) лапок, щоб задати рядок. Вибір між ними залежить від особистих уподобань, проте існують і певні винятки.
Обирати між ними - справді чудово, якщо у рядку наявні скорочення або ж інша його частина вже знаходиться в лапках. Лише будьте уважними, аби не закрити рядок занадто рано, що може призвести до помилки в синтаксисі.
Ось деякі приклади змішаного використанням лапок:
```js
const grouchoContraction = "I've had a perfectly wonderful evening, but this wasn't it.";
const quoteInString = "Groucho Marx once said 'Quote me as saying I was mis-quoted.'";
const uhOhGroucho = 'I've had a perfectly wonderful evening, but this wasn't it.';
```
Перші два варіанти є правильними, але третій містить помилку.
Звичайно, використання лише одного виду лапок теж є правильним. Уникнути повторення лапок можна використовуючи символ зворотної косої риски (`\`):
```js
const allSameQuotes = 'I\'ve had a perfectly wonderful evening, but this wasn\'t it.';
```
# --instructions--
Виправіть рядок шляхом або використання у ньому різних типів лапок для значення `href`, або уникнувши застосування вже наявних. Дотримуйтесь використання подвійних лапок навколо всього рядка.
# --hints--
Ваш код має виправляти використання лапок навколо значення `href` у `#Home` шляхом зміни їхнього типу або уникаючи їх вжитку.
```js
assert(code.match(/<a href=\s*?('|\\")#Home\1\s*?>/g));
```
Ваш код має дотримуватися використання подвійних лапок навколо всього рядка.
```js
assert(code.match(/"<p>.*?<\/p>";/g));
```
# --seed--
## --seed-contents--
```js
let innerHtml = "<p>Click here to <a href="#Home">return home</a></p>";
console.log(innerHtml);
```
# --solutions--
```js
let innerHtml = "<p>Click here to <a href=\"#Home\">return home</a></p>";
console.log(innerHtml);
```

View File

@@ -0,0 +1,93 @@
---
id: 587d7b86367417b2b2512b3b
title: Знаходження помилок неврахованої одиниці при індексуванні
challengeType: 1
forumTopicId: 301189
dashedName: catch-off-by-one-errors-when-using-indexing
---
# --description--
<dfn>Помилки неврахованої одиниці</dfn> (також відомі як помилки на одиницю) виникають, коли ви намагаєтеся обрати конкретний індекс рядка чи масиву (для виокремлення чи отримання доступу до цього сегмента) або під час створення з них циклів. Індексування JavaScript починається з нуля, а не одиниці, що означає, що останній індекс завжди буде на одиницю меншим, ніж довжина елемента. Якщо ви спробуєте отримати доступ до індексу рівному довжині, програма повідомить про помилку "індексу поза діапазоном" або виведе на екран результат `undefined`.
Якщо ви використовуєте методи рядка чи масиву, які беруть діапазон індексу за аргумент, прочитання документації допоможе зрозуміти, чи вони включають елементи (коли елемент за заданим індексом є частиною отриманого результату), чи ні. Ось кілька прикладів помилок неврахованої одиниці:
```js
let alphabet = "abcdefghijklmnopqrstuvwxyz";
let len = alphabet.length;
for (let i = 0; i <= len; i++) {
console.log(alphabet[i]);
}
for (let j = 1; j < len; j++) {
console.log(alphabet[j]);
}
for (let k = 0; k < len; k++) {
console.log(alphabet[k]);
}
```
Перший приклад створює цикл забагато разів, а другий цикл є занадто коротким (оскільки пропущений перший індекс, 0). Третій приклад правильний.
# --instructions--
Виправіть дві помилки індексування у поданій функції таким чином, щоб усі числа від 1 до 5 були виведені на консоль.
# --hints--
Ваш код має встановити початкову умову циклу так, щоб він починався з першого індексу.
```js
assert(code.match(/i\s*?=\s*?0\s*?;/g).length == 1);
```
Ваш код має виправити початкову умову циклу таким чином, щоб індекс починався з 0.
```js
assert(!code.match(/i\s?=\s*?1\s*?;/g));
```
Ваш код має встановити кінцеву умову циклу так, щоб він закінчувався на останньому індексі.
```js
assert(code.match(/i\s*?<\s*?len\s*?;/g).length == 1);
```
Ваш код має виправити кінцеву умову циклу таким чином, щоб він зупинявся на 1 перед одиницею довжини.
```js
assert(!code.match(/i\s*?<=\s*?len;/g));
```
# --seed--
## --seed-contents--
```js
function countToFive() {
let firstFive = "12345";
let len = firstFive.length;
// Only change code below this line
for (let i = 1; i <= len; i++) {
// Only change code above this line
console.log(firstFive[i]);
}
}
countToFive();
```
# --solutions--
```js
function countToFive() {
let firstFive = "12345";
let len = firstFive.length;
// Only change code below this line
for (let i = 0; i < len; i++) {
// Only change code above this line
console.log(firstFive[i]);
}
}
countToFive();
```

View File

@@ -0,0 +1,49 @@
---
id: 587d7b84367417b2b2512b36
title: 'Знаходження незакритих круглих, квадратних і фігурних дужок та лапок'
challengeType: 1
forumTopicId: 301190
dashedName: catch-unclosed-parentheses-brackets-braces-and-quotes
---
# --description--
Наступна синтаксична помилка, про яку варто пам'ятати - відкривши круглі, квадратні, фігурні дужки або лапки, необхідно їх також закрити. Зазвичай про це можна забути під час редагування вже існуючого коду або вставлення елементів вже з одним з типів парних розділових знаків. Також будьте обережні, коли вкладаєте одні блоки коду в інші, наприклад, додавання зворотного виклику функції в якості аргументу до методу.
Один із способів уникнути цієї помилки - одразу при відкритті лапок або дужок закривайте їх і потім повертайте курсор між парними пунктуаційними знаками та продовжуйте кодування. На щастя, більшість сучасних редакторів коду створюють другу частину пари автоматично.
# --instructions--
Виправте помилки парних знаків у коді.
# --hints--
Ваш код має виправити відсутній фрагмент масиву.
```js
assert(code.match(/myArray\s*?=\s*?\[\s*?1\s*?,\s*?2\s*?,\s*?3\s*?\];/g));
```
Ваш код має виправити відсутній фрагмент методу `.reduce()`. Вихідні дані консолі повинні мати результат `Sum of array values is: 6`.
```js
assert(arraySum === 6);
```
# --seed--
## --seed-contents--
```js
let myArray = [1, 2, 3;
let arraySum = myArray.reduce((previous, current => previous + current);
console.log(`Sum of array values is: ${arraySum}`);
```
# --solutions--
```js
let myArray = [1, 2, 3];
let arraySum = myArray.reduce((previous, current) => previous + current);
console.log(`Sum of array values is: ${arraySum}`);
```

View File

@@ -0,0 +1,81 @@
---
id: 587d7b85367417b2b2512b38
title: Спільне використання оператору призначення замість оператору рівності
challengeType: 1
forumTopicId: 301191
dashedName: catch-use-of-assignment-operator-instead-of-equality-operator
---
# --description--
Розгалуження певних типів програм, які виконують різні дії у разі виконання певних умов, у JavaScript опирається на команди `if`, `else if` та `else`. Інколи такі умови відбуваються у формі перевірки або коли результат дорівнює значенню.
За цією логікою (принаймні в англійській мові), "якщо x дорівнює y, то..." на мову кодування можна перекласти, використовуючи `=` або оператор присвоєння. Це призводить до неочікуваних потоків керування у вашій програмі.
Як зазначено у попередніх завданнях, у JavaScript оператор присвоєння (`=`) надає значення для назв змінних. І оператори `==` та `===` перевіряють їх на рівність (потрійні `===` тести для суворої рівності, вказуючи, що як значення, так і тип є однаковими).
Поданий нижче код присвоює `x` значення 2, що оцінюватиметься як `true`. Майже кожне значення у JavaScript самостійно оцінюється до `true`, за винятком деяких випадків, які нам відомі як неправильні значення: `false`, `0`, `""` (пустий рядок), `NaN`, `undefined` та `null`.
```js
let x = 1;
let y = 2;
if (x = y) {
} else {
}
```
У цьому прикладі блок коду в межах оператора `if` не виконуватиметься для будь-якого значення `y`, якщо тільки `y` не буде помилковим. Блок `else`, який за нашими очікуваннями повинен тут виконуватися, насправді не буде запускатися.
# --instructions--
Виправіть умову таким чином, щоб програма виконувалася у правій гілці, і відповідне значення було присвоєне `result`.
# --hints--
Ваш код має виправити умову так, щоб відбувалася перевірка рівності замість використання оператора присвоєння.
```js
assert(result == 'Not equal!');
```
Умова має використовувати або `==`, або `===`, щоб відбувалася перевірка рівності.
```js
assert(code.match(/x\s*?===?\s*?y/g));
```
# --seed--
## --seed-contents--
```js
let x = 7;
let y = 9;
let result = "to come";
if(x = y) {
result = "Equal!";
} else {
result = "Not equal!";
}
console.log(result);
```
# --solutions--
```js
let x = 7;
let y = 9;
let result = "to come";
if(x === y) {
result = "Equal!";
} else {
result = "Not equal!";
}
console.log(result);
```

View File

@@ -0,0 +1,63 @@
---
id: 587d7b86367417b2b2512b3d
title: Запобігання безкінечним циклам дійсною кінцевою умовою
challengeType: 1
forumTopicId: 301192
dashedName: prevent-infinite-loops-with-a-valid-terminal-condition
---
# --description--
Остання тема - це безкінечний цикл, який багатьох жахає. Цикли є чудовими інструментами, коли вам необхідно, щоб ваша програма виконувала блок коду певну кількість разів, або поки умова не буде виконана, але їм також потрібна кінцева умова, яка закінчить цикл. Нескінченні цикли можуть призвести до блокування або збоїв у роботі браузера, чого кожен прагнув би уникнути.
У вступі до цього розділу був приклад нескінченного циклу - у нього немає кінцевої умови для того, щоб вибратися з циклу `while` всередині `loopy()`. НЕ викликайте цю функцію!
```js
function loopy() {
while(true) {
console.log("Hello, world!");
}
}
```
Завданням програми є гарантувати, що кінцева умова, яка вказує програмі на момент розірвання коду циклу, нарешті досягнута. Одна помилка може зменшити або збільшити змінну лічильника у неправильному від кінцевої умови напрямку. Інша ж може випадково скинути дані лічильника чи змінну індексу всередині самого циклу замість його збільшення чи зменшення.
# --instructions--
Функція `myFunc()` містить нескінченний цикл, оскільки кінцева умова `i != 4` ніколи не оцінюватиметься як `false` (та не розірве цикл) - `i` збільшуватиметься на 2 з кожним виконанням циклу і пропустить 4, оскільки `i` має бути непарним для початку запуску. Виправіть оператора порівняння у кінцевій умові так, щоб цикл виконувався лише якщо `i` менше або рівне 4.
# --hints--
Ваш код повинен змінити оператора порівняння у кінцевій умові (середня частина) циклу `for`.
```js
assert(code.match(/i\s*?<=\s*?4;/g).length == 1);
```
Ваш код повинен виправити оператора порівняння у кінцевій умові циклу.
```js
assert(!code.match(/i\s*?!=\s*?4;/g));
```
# --seed--
## --seed-contents--
```js
function myFunc() {
for (let i = 1; i != 4; i += 2) {
console.log("Still going!");
}
}
```
# --solutions--
```js
function myFunc() {
for (let i = 1; i <= 4; i += 2) {
console.log("Still going!");
}
}
```

View File

@@ -0,0 +1,65 @@
---
id: 587d7b83367417b2b2512b37
title: Розуміння різниці між freeCodeCamp та консоллю браузера
challengeType: 1
forumTopicId: 301193
dashedName: understanding-the-differences-between-the-freecodecamp-and-browser-console
---
# --description--
Ви могли помітити, що у завдань freeCodeCamp є власна консоль. Ця консоль функціонує трохи інакше, ніж консоль браузера.
Існує багато способів, які можна використовувати за допомогою `console` для виведення повідомлень. Наприклад, ось деякі з них: `log`, `warn` та `clear`. Консоль freeCodeCamp виведе лише `log` повідомлення, у той час як консоль браузера виведе всі повідомлення. У разі внесення змін до коду він автоматично запуститься та покаже системні журнали. Отже, консоль freeCodeCamp очищується щоразу, як запускається ваш код.
# --instructions--
Спочатку відкрийте консоль вашого браузера так, щоб бачити системні журнали. Для цього натисніть правою кнопкою миші зверху на панелі навігаційної стрічки freeCodeCamp та виберіть `inspect` на панелі інструментів більшості браузерів. Потім знайдіть вкладку `console` у вікні, що відкриється.
Після цього використайте `console.log`, щоб зазначити змінну `output`. Перегляньте дві консолі, щоб побачити системний журнал. Наприкінці використайте функцію `console.clear` після вашого системного журналу, щоб очистити консоль браузера. Побачте різницю у двох консолях.
# --hints--
Ви повинні використати `console.log()`, щоб вивести на екран змінну `output`.
```js
assert(__helpers.removeWhiteSpace(code).match(/console\.log\(output\)/));
```
Ви повинні використати `console.clear()`, щоб очистити консоль браузера.
```js
assert(
__helpers
.removeWhiteSpace(code)
.match(/console.clear\(\)/)
);
```
Ви повинні очистити консоль після свого системного журналу.
```js
assert(
__helpers
.removeWhiteSpace(code)
.match(/console\.log\(output\)[\s\S]*console.clear\(\)/)
);
```
# --seed--
## --seed-contents--
```js
let output = "Get this to show once in the freeCodeCamp console and not at all in the browser console";
```
# --solutions--
```js
let output = "Get this to show once in the freeCodeCamp console and not at all in the browser console";
console.log(output);
console.clear();
```

View File

@@ -0,0 +1,97 @@
---
id: 587d7b86367417b2b2512b3c
title: Будьте обережні при реініціалізації змінних всередині циклу
challengeType: 1
forumTopicId: 301194
dashedName: use-caution-when-reinitializing-variables-inside-a-loop
---
# --description--
Часом буває необхідно зберегти інформацію, збільшити лічильники чи перевстановити змінні всередині самого циклу. Проблема може виникнути, що змінні або повинні бути реініціалізовані, але ще не були реініціалізовані, або ж навпаки. Це особливо небезпечно, якщо ви випадково скинули змінну, яка використовується в кінцевій умові, що може спричинити появу нескінченного циклу.
Виявити помилки, які можуть повторюватися в результаті скидання або невдалих спроб скинути змінну, можливо виведенням значень змінних на екран кожного повторення циклу, використовуючи функцію `console.log()`.
# --instructions--
Подана нижче функція повинна створити двовимірний масив із `m` рядків та `n` стовпців з нулів. На жаль, вона не має очікуваного результату, оскільки змінна `row` не реініціалізована (встановлена на порожньому масиві) у зовнішньому циклі. Виправіть код так, щоб він повертав правильний 3x2 масив з нулів, який повинен мати такий вигляд: `[[0, 0], [0, 0], [0, 0]]`.
# --hints--
Ваш код повинен встановити змінну `matrix` у масиві, що містить 3 рядки з 2 стовпців нулів кожен.
```js
assert(JSON.stringify(matrix) == '[[0,0],[0,0],[0,0]]');
```
Змінна `matrix` повинна мати 3 рядки.
```js
assert(matrix.length == 3);
```
Змінна `matrix` повинна мати 2 стовпці в кожному рядку.
```js
assert(
matrix[0].length == 2 && matrix[1].length === 2 && matrix[2].length === 2
);
```
`zeroArray(4,3)` повинен повернути масив, який містить 4 рядки з 3 стовпців нулів кожен.
```js
assert(JSON.stringify(zeroArray(4,3)) == '[[0,0,0],[0,0,0],[0,0,0],[0,0,0]]');
```
# --seed--
## --seed-contents--
```js
function zeroArray(m, n) {
// Creates a 2-D array with m rows and n columns of zeroes
let newArray = [];
let row = [];
for (let i = 0; i < m; i++) {
// Adds the m-th row into newArray
for (let j = 0; j < n; j++) {
// Pushes n zeroes into the current row to create the columns
row.push(0);
}
// Pushes the current row, which now has n zeroes in it, to the array
newArray.push(row);
}
return newArray;
}
let matrix = zeroArray(3, 2);
console.log(matrix);
```
# --solutions--
```js
function zeroArray(m, n) {
// Creates a 2-D array with m rows and n columns of zeroes
let newArray = [];
for (let i = 0; i < m; i++) {
let row = [];
// Adds the m-th row into newArray
for (let j = 0; j < n; j++) {
// Pushes n zeroes into the current row to create the columns
row.push(0);
}
// Pushes the current row, which now has n zeroes in it, to the array
newArray.push(row);
}
return newArray;
}
let matrix = zeroArray(3, 2);
console.log(matrix);
```

View File

@@ -0,0 +1,54 @@
---
id: 587d7b83367417b2b2512b33
title: Використання консолі JavaScript для перевірки значення змінної
challengeType: 1
forumTopicId: 18372
dashedName: use-the-javascript-console-to-check-the-value-of-a-variable
---
# --description--
І Chrome, і Firefox мають чудові консолі, також відомі як DevTools, для налагодження роботи вашої JavaScript.
Ви можете знайти інструменти розробника в меню вашого Chrome або у веб-консолі в меню Firefox. Якщо ви використовуєте інший браузер або мобільний телефон, ми наполегливо радимо вам натомість працювати з комп'ютерною версією Firefox або Chrome.
Метод `console.log()`, який "виводить" вихідні дані з тих, що знаходяться між його дужками до консолі, імовірно, буде найкориснішим інструментом для налагодження програм. Розміщення його у стратегічно важливих місцях вашого коду може показати вам проміжні значення змінних. Добре мати уявлення про те, яким повинен бути результат, перш ніж розглянути, яким він є. Формування ключових моментів для розуміння стану ваших розрахунків у всьому коді допоможе скоротити кількість місць для пошуку проблеми.
Ось приклад виведення на екран консолі рядка `Hello world!`:
```js
console.log('Hello world!');
```
# --instructions--
Використайте метод `console.log()`, щоб вивести на екран значення змінної `a`, де це вказано в коді.
# --hints--
Ваш код повинен використовувати `console.log()` для перевірки значення змінної `a`.
```js
assert(code.match(/console\.log\(a\)/g));
```
# --seed--
## --seed-contents--
```js
let a = 5;
let b = 1;
a++;
// Only change code below this line
let sumAB = a + b;
console.log(sumAB);
```
# --solutions--
```js
var a = 5; console.log(a);
```

View File

@@ -0,0 +1,66 @@
---
id: 587d7b84367417b2b2512b34
title: Використання typeof для перевірки типу змінної
challengeType: 1
forumTopicId: 18374
dashedName: use-typeof-to-check-the-type-of-a-variable
---
# --description--
Ви можете використовувати оператор `typeof` для перевірки структури даних або типу змінної. Це може бути корисним для налагодження програм у випадку, коли ви працюєте з різними типами даних. Якщо ви думаєте, що додаєте два числа, але одне з них насправді є рядком, результати можуть бути непередбачуваними. Помилки в типах даних можуть ховатися у розрахунках або ж викликах функцій. Будьте особливо обережні, отримуючи доступ та працюючи із зовнішніми даними у вигляді запису об'єктів JavaScript (JSON).
Ось кілька прикладів використання оператора `typeof`:
```js
console.log(typeof "");
console.log(typeof 0);
console.log(typeof []);
console.log(typeof {});
```
Консоль по порядку відображатиме рядки `string`, `number`, `object` та `object`.
JavaScript розпізнає шість примітивних (незмінних) типів даних `Boolean`, `Null`, `Undefined`, `Number`, `String` та `Symbol` (новий з ES6) і один тип для змінних елементів: `Object`. Візьміть до уваги, що у JavaScript масиви технічно є типом об'єкту.
# --instructions--
Додайте дві команди `console.log()` для перевірки оператором `typeof` кожної з двох змінних, `seven` та `three`, у коді.
# --hints--
Ваш код повинен використати оператор `typeof` у двох командах `console.log()` для перевірки типів змінних.
```js
assert(code.match(/console\.log\(typeof[\( ].*\)?\)/g).length == 2);
```
Ваш код повинен використати оператор `typeof` для перевірки типу змінної `seven`.
```js
assert(code.match(/typeof[\( ]seven\)?/g));
```
Ваш код повинен використати оператор `typeof` для перевірки типу змінної `three`.
```js
assert(code.match(/typeof[\( ]three\)?/g));
```
# --seed--
## --seed-contents--
```js
let seven = 7;
let three = "3";
console.log(seven + three);
// Only change code below this line
```
# --solutions--
```js
let seven = 7;let three = "3";console.log(typeof seven);
console.log(typeof three);
```