Sobes.tech
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