Кратко
Секция статьи "Кратко"Undefined — это примитивный тип данных, состоящий из одного значения undefined
. Оно используется, чтобы обозначить неизвестное или неопределённое значение.
JavaScript автоматически устанавливает значение undefined
объявленным переменным, которые не были проинициализированы значением.
Пример
Секция статьи "Пример"JavaScript автоматически устанавливает значение undefined
новой переменной:
let nameconsole.log(name)// undefined
let name console.log(name) // undefined
Также JavaScript автоматически устанавливает значение undefined
в аргумент функции, если значение не передали при вызове:
function hello(name) { console.log('Привет, ' + name)}hello('Витя')// Привет, Витяhello()// Привет, undefined
function hello(name) { console.log('Привет, ' + name) } hello('Витя') // Привет, Витя hello() // Привет, undefined
Вручную установленное undefined
, чтобы обозначить неизвестное значение:
const person = { name: 'Пётр', lastName: 'Романов', age: undefined}
const person = { name: 'Пётр', lastName: 'Романов', age: undefined }
Но будьте аккуратны, когда устанавливаете undefined
свойствам объектов. Если у объекта person
удалить age
, то при обращении к несуществующему свойству также вернётся undefined
.
Как понять
Секция статьи "Как понять"undefined
обозначает, что значение по каким-то причинам ещё не установлено или неизвестно. В этом контексте его использует сам язык JavaScript.
В языке существует похожий примитив null
. Он обозначает, что значение отсутствует. undefined
и null
можно легко спутать, потому что это близкие понятия. Различие состоит в том, что null
обозначает отсутствие значения, а undefined
— что значение неизвестно или не задано.
На практике
Секция статьи "На практике"🛠 Разделение между undefined
и null
очень слабое. Это рекомендация, которую не все выполняют. Команды могут договориться о своей трактовке этих значений.
Например, в приложении нужно отобразить список пользователей, полученный с сервера. Пока данных нет, мы рисуем заглушку. В этом случае мы можем трактовать значение undefined
как «отправили запрос на сервер, рисуем заглушку и ждём ответа», а null
как «сервер ответил, что у него нет данных».
🛠 Уточняйте договорённости по undefined
и null
на проекте. Часто они не зафиксированы на бумаге, но имеют большое значение.