Проблема
В других ответах не учитывается, что 0
ложно, и, следовательно, следующее будет 20 вместо 0:
var myNumber = parseInt('0') || 20; // 20
Решение
Я предлагаю вспомогательную функцию, которая решает большинство проблем:
function getNumber(number, defaultNumber) {
return isNaN(parseInt(number, 10)) ? defaultNumber : parseInt(number, 10);
}
Вспомогательная функция даст следующие результаты:
getNumber('0', 20); // 0
getNumber('2', 20); // 2
getNumber('2.2', 20); // 2
getNumber('any string', 20); // 20
getNumber(undefined, 20); // 20
getNumber(null, 20); // 20
getNumber(NaN, 20); // 20
getNumber(false, 20); // 20
getNumber(true, 20); // 20