В JavaScript if
является , а не выражением.Он не возвращает значение и не может быть помещен в вызов функции.То есть это недопустимо:
func(if (a) { ... } else { ... });
Это основное различие между if
и ?:
- оператор является выражением и возвращает значение;if
является утверждением, не возвращает значение и не может использоваться везде.
Лучше всего, если вам нужно избегать троичного оператора, делать что-то вроде:
if (url == "") {
url = "#some-page";
}
load(url);
Вы также можете добиться того же эффекта, используя ||
:
function (url) {
load(url || "#some-page");
}
Это самый короткий и самый идиоматичный способ написания кода.