Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Эта страница была переведена с английского языка силами сообщества. Вы тоже можете внести свой вклад, присоединившись к русскоязычному сообществу MDN Web Docs.

undefined

BaselineWidely available

Сводка

Значение глобального свойстваundefined представляет значениеundefined. Это одно изпримитивных значений JavaScript.

Атрибуты свойстваundefined
Записываемоенет
Перечисляемоенет
Настраиваемоенет

Интерактивный пример

function test(t) {  if (t === undefined) {    return "Undefined value!";  }  return t;}let x;console.log(test(x));// Expected output: "Undefined value!"

Синтаксис

undefined

Описание

undefined является свойствомглобального объекта, то есть, это переменная в глобальной области видимости. Начальным значениемundefined является примитивное значениеundefined.

В современных браузерах (JavaScript 1.8.5 / Firefox 4+),undefined является ненастраиваемым и незаписываемым свойством, в соответствии со спецификацией ECMAScript 5. Даже когда это не так, избегайте его переопределения.

Переменная, не имеющая присвоенного значения, обладает типомundefined. Такжеundefined возвращают метод или инструкция, если переменная, участвующая в вычислениях, не имеет присвоенного значения. Функция возвращаетundefined, если она невозвращает какого-либо значения.

Посколькуundefined не являетсязарезервированным словом, он может использоваться в качествеидентификатора (имени переменной) в любой области видимости, за исключением глобальной.

js
// печатает 'foo string'(function () {  var undefined = "foo";  console.log(undefined, typeof undefined);})();// печатает 'foo string'(function (undefined) {  console.log(undefined, typeof undefined);})("foo");

Примеры

Пример: строгое сравнение иundefined

Вы можете использоватьundefined и операторы строгого равенства или неравенства для определения того, имеет ли переменная значение. В следующем коде переменнаяx не определена и инструкцияif вычисляется вtrue.

js
var x;if (x === undefined) {  // эти инструкции будут выполнены} else {  // эти инструкции не будут выполнены}

Примечание:Здесь используется оператор строгого равенства (идентичности) вместо простого оператора равенства, посколькуx == undefined также проверяет, является лиx равнымnull, в то время как оператор идентичности этого не делает.null не эквивалентенundefined. Для более подробной информации смотритеоператоры сравнения.

Пример: операторtypeof иundefined

В качестве альтернативы можно использовать операторtypeof:

js
var x;if (typeof x === "undefined") {  // эти инструкции будут выполнены}

Одной из причин использования оператораtypeof может быть та, что он не выбрасывает ошибку, если переменная не была определена.

js
// переменная x не была определена ранееif (typeof x === "undefined") {  // вычислится в true без ошибок  // эти инструкции будут выполнены}if (x === undefined) {  // выкинет ReferenceError}

Однако, уловки такого рода должны избегаться. JavaScript является языком со статической областью видимости, так что узнать, была ли переменная определена, можно путём просмотра, была ли она определена в охватывающем контексте. Единственным исключением являет глобальная область видимости, но глобальная область видимости привязана к глобальному объекту, так что проверка существования переменной в глобальном контексте может быть осуществлена путём проверки существования свойстваглобального объекта (например, используя операторin).

Пример: операторvoid иundefined

Третьей альтернативой является операторvoid.

js
var x;if (x === void 0) {  // эти инструкции будут выполнены}// переменная y не была определена ранееif (y === void 0) {  // выкинет ReferenceError (в отличие от оператора `typeof`)}

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-undefined

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp