2.1 Змінні — це посилання
У JavaScript змінні є посиланнями на об'єкти, а не самою змінною. Це означає, що, коли ти створюєш змінну в JavaScript, ти просто створюєш посилання на об'єкт у пам'яті.
Ця особливість мови має важливі наслідки для роботи зі змінними, особливо при передачі об'єктів у функції або їх присвоєнні іншим змінним.
Коли ти створюєш змінну та присвоюєш їй значення, JavaScript виділяє об'єкт у пам'яті для цього значення і робить змінну посиланням на цей об'єкт. Якщо ти присвоїш одну змінну іншій, нова змінна буде посилатися на той самий об'єкт, що й початкова змінна. Це означає, що зміни, зроблені через одну змінну, відобразяться і на іншій, якщо об'єкт змінний.
Приклад:
let a = [1, 2, 3];
let b = a;
b.push(4);
console.log(a); // Виведе: [1, 2, 3, 4]
Ми додали число 4 у змінну b, але воно додалося і в список у змінній а, оскільки насправді обидві змінні — це лише посилання на об'єкт список [1, 2, 3]
2.2 Тип undefined
У JavaScript існує два спеціальні типи даних: null і undefined. Ці типи часто викликають питання у розробників через їхню схожість, але вони мають різне призначення і використовуються в різних ситуаціях. Розглянемо їх детальніше.
Тип undefined
Тип undefined представляє значення змінної, яка була оголошена, але не ініціалізована. Це значення також повертається при доступі до неіснуючої властивості об'єкта або елемента масиву, який не існує.
Приклади
1. Неініціалізована змінна:
let x;
console.log(x); // undefined
2. Неіснуюча властивість об'єкта:
let obj = {};
console.log(obj.property); // undefined
3. Неіснуючий елемент масиву:
let array = [1, 2, 3];
console.log(array[5]); // undefined
4. Відсутній аргумент функції:
function myFunction(a, b) {
console.log(b); // undefined, якщо викликано як myFunction(1)
}
myFunction(1);
Властивості undefined:
undefinedє типом даних і значеннямtypeof undefinedповертаєundefined
2.3 Тип null
Тип null представляє навмисну відсутність значення. Це значення часто використовується для ініціалізації змінних, які будуть пізніше присвоєні об'єктом, або для очищення значення змінної.
Приклади
1. Ініціалізація змінної:
let obj = null;
console.log(obj); // null
2. Очищення значення змінної:
let user = { name: "Alice" };
user = null; // user тепер не вказує на об'єкт
Властивості null:
nullє значенням, яке представляє навмисну відсутність значенняtypeof nullповертаєobject, що є визнаною помилкою в мові JavaScript (насправдіnullне є об'єктом)
2.4 Порівняння null і undefined
Незважаючи на те, що null і undefined можуть використовуватися для позначення відсутності значення, вони відрізняються за призначенням і контекстом використання.
| Властивість | null | undefined |
|---|---|---|
| Тип | Примітивний тип | Примітивний тип |
| Призначення | Навмисна відсутність значення | Неініціалізована змінна |
| Використання | Ініціалізація змінних, очищення значення | Неіснуючі властивості, елементи масиву |
| Значення за замовчуванням | Немає | Так (для неініціалізованих змінних, параметрів функцій) |
Приклади використання
1. Ініціалізація змінної об'єктом або масивом:
let myObject = null;
let myArray = null;
2. Перевірка значень:
let value;
if (value === undefined) {
console.log("Змінна не ініціалізована.");
}
let result = null;
if (result === null) {
console.log("Відсутність значення.");
}
3. Очищення значень:
let person = { name: "Alice" };
person = null; // Тепер person не вказує на об'єкт
4. Перевірка на існування властивості:
let obj = {};
if (obj.property === undefined) {
console.log("Властивість не існує.");
}
Розуміння відмінностей між null і undefined у JavaScript важливе для правильного управління значеннями та запобігання помилкам у коді.
undefined зазвичай вказує на неініціалізовані змінні або відсутні властивості, тоді як null використовується для явного зазначення про відсутність значення.
Правильне використання цих спеціальних типів даних робить код більш зрозумілим і передбачуваним.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ