Я хочу определить, является ли переменная неопределенной или имеет значение null.
В следующем примере я хочу, чтобы предложение, соответствующее истинному условию, выполнялось, то есть на консоль выводилось сообщение «EmpName is notdefined», однако уже выполнено предложение в «else», которое печатает « EmpName определено"
var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
console.log("EmpName no está definido");
} else {
console.log("EmpName está definido");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<div id="esd-names">
<div id="name"></div>
</div>
var miVariable; //miVariable está definida pero tiene valor nulo.
console.log(miVariable)
Каков правильный путь?
Значение
undefined
не совпадает со строкой'undefined'
. В вашем примере я бы сделал:хорошо
Короткий ответ
Вместо
'undefined'
(строка) используйтеnull
(глобальный объект).Объяснение
'undefined'
иnull
они не одинаковы и не одного типа. Первый относится к строке, а второй — к глобальному объекту (см. null в статье Mozilla Developers Network).ПРИМЕЧАНИЕ. См . ответ amandiel , в котором разъясняется разница между
'undefined'
(строка) иundefined
(зарезервированное слово) или неопределенным (статья Mozilla Developers Network).Фрагмент
В следующем примере он был заменен
'undefined'
на ,null
а сообщения для печати были скорректированы для каждого случая.Другой более общий способ — заменить сравнение (
EmpName == 'undefined'
) именем переменной (EmpName
)Так
javascript
как нет эквивалентаisset
как в ,php
вы должны принять во внимание следующее:Если значение переменной
undefined
используется:Если значение переменной
null
используется:Если значение переменной пустое:
Вы также можете использовать:
Если вы не знаете, какой тип значения имеет переменная, вы можете получить его с помощью:
console.log(variable)
Вы можете попробовать это так: