Как проверить на undefined js
Перейти к содержимому

Как проверить на undefined js

  • автор:

undefined

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

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

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

Синтаксис

undefined

Описание

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

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

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

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

// печатает '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 . Для более подробной информации смотрите операторы сравнения (en-US).

Пример: оператор 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`) > 

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

Specification
ECMAScript Language Specification
# sec-undefined

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

BCD tables only load in the browser

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

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 7 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.

JS. Проверка переменной на undefined или false

Вот пример посложнее, надо проверить переменную на лож или истину. Значит:

if(typeof undefinedVar == "undefined" && !undefinedVar) alert("Undefined and false"); else alert(undefinedVar?"Not undefined True":"Not undefined False"); 

А теперь, что недавно обнаружил я, причём искал в интернете и не нашел ни в одной книге.

if(!!undefinedVar) alert("Not undefined"); else alert("Undefined"); 

То-есть, «!!» — является проверкой как определена ли переменная и является истиной, а «. » — как определена переменная и является ложью.
При этом если переменная является Undefined, то всегда вернется false.

Счастливых Вам экспериментов!

 var iDefined=true; var iDefinedMeToo=false; if(!!iDefined) alert("iDefined true"); else alert("iDefined false"); if(!!iDefinedMeToo) alert("iDefinedMeToo true"); else alert("iDefinedMeToo false"); if(!!iNotDefined) alert("iNotDefined true"); else alert("iNotDefined false or iNotDefined is undefined"); 

Как проверить существует ли переменная?

Получаешь тип и сравниваешь его с undefined . Если true , то переменная установлена.

if(typeof dfshkhdkjfh !== "undefined") alert('Defined'); else alert('Not defined');

Отслеживать
ответ дан 27 мая 2015 в 13:54
user31688 user31688

if(typeof par === 'undefined') < alert("par undefined"); >else < alert("par defined"); >var par2 = "something"; if(typeof par2 === 'undefined') < alert("par2 undefined"); >else

Отслеживать
ответ дан 27 мая 2015 в 13:52
user177221 user177221

function isset(r) < return typeof r !== 'undefined'; >// проверка на переменную varname в глобальном контексте console.log(isset(window['varname']); // проверка на переменную V у объекта console.log(isset(App.V)); 

Удобней использовать функцию, так как часто требуется такова рода проверка.

Или более продвинутый вариант

function isset(obj) < if (typeof obj === 'undefined' || obj === null ) < return false; >else

Ну и для сверх ленивых и знающих что будет в переменной:

if (!!variable) < //exist >

как проверить на undefined js

Для проверки на undefined можно использовать оператор typeof , так как undefined это самостоятельный тип данных, или строгое сравнение === , так как undefined является примитивным типом данных:

let someVariable; console.log(typeof someVariable); // => undefined console.log(someVariable === undefined); // => true 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *