Sobes.tech
Junior

Разкажете повече за стойностите null и undefined в JavaScript.

sobes.tech AI

Отговор от AI

  • неопределено:

    • Имплицитна стойност, присвоявана на променливи, които са обявени, но не са инициализирани.
    • Също така се връща от функции, които явно не връщат стойност.
    • Това е примитивен тип данни.
    • Операторът typeof връща низ "undefined".
  • null:

    • Явна стойност, присвоена на променлива, за да се обозначи липсата на обект.
    • Представлява умишленото отсъствие на всяка стойност на обект.
    • Това е примитивен тип данни, но операторът typeof неправилно връща "object" (историческа грешка).
Свойство неопределено null
Произход Неявен (от системата) Явен (от разработчика)
Тип Примитивен Примитивен (въпреки че typeof - object)
Стойност Неинициализирана променлива Липса на обект
// Пример за undefined
let неинициализиранаПроменлива;
console.log(неинициализиранаПроменлива); // undefined

function безСтойностНаВръщане() {
  // няма return
}
console.log(безСтойностНаВръщане()); // undefined
console.log(typeof неинициализиранаПроменлива); // undefined

// Пример за null
let обектПроменлива = null;
console.log(обектПроменлива); // null
console.log(typeof обектПроменлива); // object (историческа грешка)