Перейти к содержимому

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

  • автор:

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

Значение глобального свойства 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– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

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

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

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

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

Есть код который выводит сумму чисел в массиве, без наибольшего и наименьшего значения. Не могу проверит входное значение на undefined. Пробовал проверять таким способом:

if (typeof something === "undefined")

Но тесты не прохожу, мне нужно если undefined то выводить просто 0.

function getMaxOfArray(numArray) < return Math.max.apply(null, numArray); >function getMinOfArray(numArray) < return Math.min.apply(null, numArray); >function sumArray(numbers)< var maxPlusMin = getMaxOfArray(numbers) + getMinOfArray(numbers); if (numbers && isNaN(numbers) & (numbers.length != 0) ) < return numbers.reduce(function(sum, n)< return n + sum; >, -maxPlusMin ); > else < numbers = 0; >> alert(sumArray([ 1, 2, 3, 4, 10 ]));

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

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