# Взаємодія з користувачем

Тут розглянемо методи введення/виведення JavaScript. Вони рідко вживані у сучасній розробці, бо ці функції виконують іншими способами роботи з HTML-документом. Але Цей функціонал теж працює і ним зручно користуватися під час вивчення мови програмування.

## Виведення даних[​](https://textbook.edu.goit.global/javascript-yk5evp/v2/uk/docs/lesson-01/user-input#%D0%B2%D0%B8%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%BD%D1%8F-%D0%B4%D0%B0%D0%BD%D0%B8%D1%85) <a href="#vivedennya-danikh" id="vivedennya-danikh"></a>

Для виведення даних існує два методи: <mark style="background-color:red;">console.log()</mark> і <mark style="background-color:red;">alert()</mark>.&#x20;

### console.log()

<mark style="background-color:red;">console.log()</mark> - використовують для виведення повідомлення в консолі.  В круглих дужках вказують імʼя змінної, або значення, яке потрібно вивести.

```javascript
const message = "Hello Word!";
console.log(message); // Hello Word!
```

<figure><img src="https://2207544843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnGZ6aKsaRNTtzzpVD8b0%2Fuploads%2FlyGwl0FCK91DkXa4treE%2Fconsole-hello.png?alt=media&#x26;token=3cb0ace5-0d0c-4139-9f55-25994e30b7f8" alt=""><figcaption></figcaption></figure>

Можна також спочатку вставити описовий рядок у лапках, а потім після коми  - змінну, яку треба підставити на її місце.

```javascript
const login = "khomiak";
console.log("Your login is: ", login); // Your login is: khomiak
```

<figure><img src="https://2207544843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnGZ6aKsaRNTtzzpVD8b0%2Fuploads%2FZxZrU6WVcwHNbGdHQyf1%2Fconsole-hello2.png?alt=media&#x26;token=e40fc842-41c9-4674-94c7-9ec1bf59670e" alt=""><figcaption></figcaption></figure>

### alert()

Метод <mark style="background-color:red;">alert()</mark> показує в браузері модальне вікно і в ньому текст, який був переданий усередині круглих дужок в лапках.

```javascript
alert("Hello Word!");
```

&#x20;Або значення змінної, яку вказали всередині круглих дужок.

```javascript
const message = "Hello Word!";
alert(message);
```

<figure><img src="https://2207544843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnGZ6aKsaRNTtzzpVD8b0%2Fuploads%2F8Wqc3LtdArNNvm1uw9rQ%2Falert.png?alt=media&#x26;token=37b2227c-7377-4c5a-a941-4cbc9b5dbe63" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %} <mark style="background-color:red;">console</mark> і <mark style="background-color:red;">alert</mark> - це частина інтерфейсу <mark style="background-color:red;">window</mark> - глобального об'єкту, який  доступний при виконанні скрипту на веб-сторінці. Запис <mark style="background-color:red;">window\.alert()</mark> громіздкий, тому заведено писати просто <mark style="background-color:red;">alert()</mark> або <mark style="background-color:red;">console.log()</mark>.&#x20;
{% endhint %}

## Отримання даних[​](https://textbook.edu.goit.global/javascript-yk5evp/v2/uk/docs/lesson-01/user-input#%D0%BE%D1%82%D1%80%D0%B8%D0%BC%D0%B0%D0%BD%D0%BD%D1%8F-%D0%B4%D0%B0%D0%BD%D0%B8%D1%85) <a href="#otrimannya-danikh" id="otrimannya-danikh"></a>

Описані далі методи <mark style="background-color:red;">confirm()</mark> і <mark style="background-color:red;">prompt()</mark> теж є частиною інтерфейсу <mark style="background-color:red;">window</mark>. Вони повертають введені користувачем дані, тому їх можна записати у змінну і далі використовувати у скрипті.

### confirm()

<mark style="background-color:red;">confirm()</mark> - виводить модальне вікно з повідомленням вказаним у круглих дужках. Також доступні для вибору дві кнопки <mark style="background-color:red;">Ok</mark> і <mark style="background-color:red;">Cancel</mark>. Якщо натиснути <mark style="background-color:red;">Ok</mark>, то повернеться результат <mark style="background-color:red;">true</mark>. Якщо натиснути <mark style="background-color:red;">Cancel</mark> - повернеться <mark style="background-color:red;">false</mark>.

```javascript
// просимо користувача погодитись на умови угоди
// результат вибору користувача записуємо у змінну isAgreed
const isAgreed = confirm("Do you agree to the terms of the agreement?");
console.log(isAgreed);
```

<figure><img src="https://2207544843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnGZ6aKsaRNTtzzpVD8b0%2Fuploads%2Fyx6wYcpYZVNPUqqKX8Sy%2Fconfirm.png?alt=media&#x26;token=74904826-3b15-4f9e-b61f-1db03406c9ae" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="https://2207544843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnGZ6aKsaRNTtzzpVD8b0%2Fuploads%2FJ3EG8nu8cf2CNpvMq3pJ%2Fconfirm-true.png?alt=media&#x26;token=6d825fa3-5a8f-4e5f-8fb0-0f0b674abe82" alt=""><figcaption></figcaption></figure>

### prompt()

<mark style="background-color:red;">prompt()</mark> - виводить модальне вікно із полем для введення даних і кнопки <mark style="background-color:red;">Ok</mark> і <mark style="background-color:red;">Cancel</mark>. Якщо користувач натискає <mark style="background-color:red;">Ok</mark>, то як результат повернеться введений користувачем текст, якщо користувач натисне <mark style="background-color:red;">Cancel</mark> - то повертається <mark style="background-color:red;">null</mark>.

```javascript
// Запитуємо користувача ввести його вік
// Реззультат відповіді записуємо у змінну age
const age = prompt("Enter your age");
console.log(age);
```

Метод prompt завжди повертає рядок. Навіть, якщо користувач ввів цифру. Тобто в змінну, наприклад запишеться не 30, а рядок  "30". Тому з такими отриманими даними потрібно робити приведення типів даних.&#x20;

```javascript
const age = prompt("Your age?");
console.log("typeof: ", typeof age); // "string"
console.log("age: ", age); // "30"
```

<figure><img src="https://2207544843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnGZ6aKsaRNTtzzpVD8b0%2Fuploads%2FWorwu4Dg7DoSQy3iLpT7%2Fprompt.png?alt=media&#x26;token=99e2149f-19a9-4892-a17b-d03d8033a50c" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="https://2207544843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnGZ6aKsaRNTtzzpVD8b0%2Fuploads%2FN5mmbRFOw5aiOAwX03aN%2Fprompt-console.png?alt=media&#x26;token=18f31a8c-8f24-4a70-9066-6e5da9775d7d" alt=""><figcaption></figcaption></figure>

**Покликання:**

[Більше про використання console.log()](https://medium.com/free-code-camp/how-to-use-the-javascript-console-going-beyond-console-log-5128af9d573b)
