Junior
Мумкинӣ шарҳ диҳед, ки фарқиятҳои байни null ва undefined дар JavaScript чӣ гунаанд?
sobes.tech AI
Ҷавоб аз AI
-
undefined:- Присвоюється змінним, які були оголошені, але не ініціалізовані значенням.
- Є значенням за замовчуванням для параметрів функцій, яким не були передані аргументи.
- Отримується при спробі доступу до неіснуючої властивості об'єкта або елемента масиву.
- Тип даних —
undefined.
-
null:- Є спеціальним значенням, явно присвоюваним змінній для позначення "відсутності значення".
- Представляє навмисну відсутність будь-якого об'єкта або примітивного значення.
- Тип даних —
object(це історична помилка JavaScript, але так є).
Основні відмінності у таблиці:
| Характеристика | undefined |
null |
|---|---|---|
| Походження | Неявне (за замовчуванням) | Явне (присвоюється розробником) |
| Призначення | Оголошено, але не присвоєно значення | Навмисне відсутність значення |
Тип даних (typeof) |
undefined |
object |
| Boolean контекст | false |
false |
Рівність (==) |
null == undefined (true) |
null == undefined (true) |
Рівність (===) |
null === undefined (false) |
null === undefined (false) |
Приклад:
let a; // Оголошено, але не ініціалізовано -> undefined
console.log(a); // undefined
const obj = {};
console.log(obj.prop); // Доступ до неіснуючої властивості -> undefined
function greet(name) {
console.log(name);
}
greet(); // Параметр name не переданий -> undefined
let b = null; // Явно присвоєно null
console.log(b); // null
let c = {};
c.data = null; // Властивості data присвоєно null
console.log(c.data); // null
console.log(typeof a); // undefined
console.log(typeof b); // object
console.log(null == undefined); // true
console.log(null === undefined); // false