# null, undefined

Більшість людей, які використовують JavaScript, неправильно розуміють різницю між «null» і «undefined». Нечітке розрізнення між цими двома сутностями може призвести до серйозних проблем під час використання «null» і «undefined» у тестових випадках.

Кажуть, що змінна є «невизначеною», якщо вона була оголошена, але їй не надано значення. На відміну від цього, «null» — це значення, яке можна присвоїти змінній і означає «немає значення». Таким чином, 'undefined' є типом змінної, тоді як 'null' є значенням об'єкта.

" ***Null" у JavaScript***

«Null» — це ключове слово в JavaScript, яке означає «немає значення» або відсутність будь-якого значення. Якщо ви бажаєте позбавити змінну її присвоєного значення, ви можете просто призначити їй «null». Крім того, як і будь-який інший об’єкт, JavaScript ніколи неявно призначається змінній.\
Прикладом явного присвоєння нуля є –

```javascript
var some_item = null;
console.log(some_item);
```

Після виконання код виведе null.

« ***Невизначено» в JavaScript***

«Undefined» — це глобальна змінна, яку JavaScript створює під час виконання. Ця глобальна змінна призначається об’єкту в одному з таких випадків:

1\. Оголошений, але не визначений –\
JavaScript призначає «undefined» будь-якому об’єкту, який був оголошений, але не ініціалізований чи визначений. Іншими словами, у випадку, коли змінній не було явно присвоєно значення, JavaScript називає її «невизначеною».

2\. Індекс масиву або властивість об'єкта, яка не існує.

3\. Функціональний параметр, який не було надано.

4\. Повернене значення функцій, які повинні, але не повертають значення.

Ілюстрація цього завдання показана нижче:

\[js]перемінний елемент;\
console.log(item);

```javascript
var item;
console.log(item)
```

Після виконання код друкуватиметься як невизначений.

***Різниця в типі –*** &#x20;

«Null» — це об’єкт із дійсним значенням, без властивостей, який не змінюється, і в системі постійно існує лише один його екземпляр. Якщо ви хочете перевірити природу об’єкта «null», ви можете використати оператор «typeof». Використання цього ж дасть вихід як "об'єкт". Однак, якщо ви використовуєте оператор «typeof» для об’єкта, який належить до однієї з точок, згаданих у списку «undefined», ви отримаєте тип об’єкта як «undefined».

***Перетворення на примітивні типи –***&#x20;

Основна відмінність між «null» і «undefined» полягає в тому, як вони перетворюються на примітивні типи. Коли ви виконуєте арифметичне перетворення на «null», визначене значення дорівнює 0. Це перетворення можна перевірити за допомогою наступного фрагмента коду.

```javascript
var v1 = 5 + null;
console.log(v1);
```

Після виконання цей вихід цього коду виведе 5.\
Однак 'undefined' не виконує такого перетворення. Якщо ви спробуєте додати «невизначене» до числа, ви отримаєте NaN або Not-a-Number. Наступний фрагмент коду ілюструє цей аспект "невизначеного".

```javascript
var v1 = 5 + null;
console.log(v1);
```

Після виконання код виведе NaN.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://olexsyn.gitbook.io/enote/progr/javascript/null-undefined.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
