JavaScript конвертировать NULL в 0
Я использую jQuery, чтобы получить высоту элемента. Но если элемент не существует, следующий код вернет NULL:
$height = $('#menu li.active ul').height(); // returns integer or null
Это безопасный межбраузерный способ получения целочисленного значения при любых обстоятельствах с помощью следующего кода:
$height = $('#menu li.active ul').height() + 0;
7 ответов
Есть много способов справиться с этим. Тот, который вы описываете, добавление целочисленного значения для приведения типа в порядке. Вы также можете преобразовать в число явно:
$height = Number($('#menu li.active ul').height());
// or:
$height = +$('#menu li.active ul').height();
Или вы можете использовать логический оператор как null
принуждает к false
:
$height = $('#menu li.active ul').height() || 0;
Это безопасно, да.
Более короткая альтернатива:
$height = +$('#menu li.active ul').height();
(обратите внимание на +
перед $
)
Самый простой способ сделать это..
$height = $('#menu li.active ul').height() || 0;
Здесь ложное значение будет..
- ложный
- ноль
- не определено
- ""
- 0
- NaN
Это лучший подход Infact...
if($('#menu li.active ul').length > 0){
$height = $('#menu li.active ul').height();
}else{
......
}
Мое краткое решение:$height = $('#menu li.active ul').height() || 0
,
Если вы хотите более описательное решение, вы можете проверить ответы других пользователей.
Изменить: Это зависит от версии JQuery тоже.
Вы можете проверить, если $("#menu li.active ul")
не является null
:
$height = $('#menu li.active ul') != null ? $('#menu li.active ul').height() : 0;
Я использовал принятый выше ответ и другие упражнения, которые дают мне хороший результат.
Мы можем использовать с parseFloat или parseInt, которые дают 0 или фактическое значение. Смотрите демо специально последний результат:
function myFunction() {
var a = parseFloat("10") + "<br>";
var b = parseFloat("10.00") + "<br>";
var c = parseFloat("10.33") + "<br>";
var d = parseFloat("34 45 66") + "<br>";
var e = parseFloat(" 60 ") + "<br>";
var f = parseFloat("40 years") + "<br>";
var g = (parseFloat("1.1234") ||0) + "<br>";
var n = a + b + c + d + e + f + g;
document.getElementById("demo").innerHTML = n;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>Click the button to parse different strings.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
Просто проверьте, существует ли элемент:
var $height = 0;
if($('#menu li.active ul').length > 0){
$height = $('#menu li.active ul').height();
}