Оба других решения хороши, когда значения falsy
могут быть исключены из допустимого ввода. Если этого не может быть, тогда простая вспомогательная функция очистит все;
function getOrDefault(val, other) {
if (typeof val == "undefined") {
return other;
}
return val;
}
var someVal = getOrDefault(someVar, 4);
var getUrl = getOrDefault(url, restUrl);
Другой подход будет;
var someVal = someVar;
if (typeof someVal == "undefined") {
someVal = 4;
}
var getUrl = url;
if (typeof getUrl == "undefined") {
someVal = restUrl;
}
Хотя, надеюсь, вы предпочтете первое решение.