Загрузка…
Загрузка…
undefined — примитив, означающий «значение не задано». Это и тип, и значение.
let x;
console.log(x); // undefined — объявили, не присвоили
function f(a) {
console.log(a); // undefined, если аргумент не передали
}
f();
const obj = {};
obj.missing; // undefined — нет свойства
function g() {}
g(); // undefined — нет returnТакже: доступ к неинициализированному let/const до строки объявления → ReferenceError (TDZ), это уже не «тихое undefined».
value === undefined;
typeof value === "undefined"; // ещё и для необъявленных имён
value == null; // true и для null, и для undefinedНе путайте с «нет ключа»: obj.key === undefined бывает и у отсутствующего ключа, и у ключа с явным undefined. Надёжнее Object.hasOwn(obj, "key") / "key" in obj.
Итог: undefined — «пусто по умолчанию / не присвоили»; язык и движок ставят его сами в ряде ситуаций.
