A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/undefined below:

undefined - JavaScript | MDN

undefined

Baseline Widely available

Сводка

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

Записываемое нет Перечисляемое нет Настраиваемое нет Интерактивный пример
function test(t) {
  if (t === undefined) {
    return "Undefined value!";
  }
  return t;
}

let x;

console.log(test(x));
// Expected output: "Undefined value!"
Синтаксис Описание

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

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

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

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

// печатает '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.

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

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

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

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

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

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

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

if (x === undefined) {
  // выкинет ReferenceError
}

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

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

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

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

// переменная y не была определена ранее
if (y === void 0) {
  // выкинет ReferenceError (в отличие от оператора `typeof`)
}
Спецификации Совместимость с браузерами Смотрите также

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4