27

Как определить, является ли переменная 'undefined' или 'null'?

20

Как определить, является ли переменная undefined или null?

У меня есть следующий код:

var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
  // DO SOMETHING
};

И HTML-код:

<div id="esd-names">
  <div id="name"></div>
</div>

Однако, когда я это выполняю, интерпретатор JavaScript останавливает выполнение. Как правильно проверять переменную на undefined или null?

4 ответ(ов)

3

С учетом приведенных выше ответов, наиболее полным решением будет:

if (typeof variable === 'undefined' || variable === null) {
    // Выполнить действия
}

Это условие будет работать для любой переменной, которая либо не объявлена, либо объявлена и явно установлена в null или undefined. Логическое выражение будет истинным (true) для всех переменных, которые имеют значение null или undefined, и ложным (false) для всех объявленных переменных с ненулевыми значениями.

1

Если вы хотите выполнить действия только в случае, если переменная равна null или undefined, вам следует использовать условие, как в следующем примере:

if (variable == null) {
    // Выполнение действий, это условие совпадет только с null или undefined, но не с false
}

Важно отметить, что оператор == в JavaScript производит нестрогое сравнение, которое приводит значения к общему типу, что позволяет null и undefined считаться равными. Однако, в отличие от false, они не совпадают. Если вам нужно различать null и undefined и обеспечивать строгую проверку, используйте оператор === в своих условиях.

1

Данный код проверяет, что переменная EmpName определена и содержит истинное значение. Он вернет true в случае, если значение переменной не равно:

  • null
  • undefined
  • NaN (Not-a-Number)
  • пустая строка ("")
  • 0
  • false

Таким образом, условие if (typeof EmpName != 'undefined' && EmpName) гарантирует, что переменная EmpName существует и имеет значение, которое интерпретируется как истинное в логическом контексте.

0

Самый короткий и простой способ:

if(!EmpName){
    // ДЕЛАЕМ ЧТО-ТО
}

Это условие будет истинным, если EmpName равно:

  • null
  • undefined
  • NaN
  • пустой строке ("")

или если оно равно:

  • 0
  • false
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь