var foo = predicate ? "one" : predicate2 ? "two" : "default";
var foo = uncheckedFoo || "default"; var wiz = (bar && bar(foo)) || "default";
Worst part of JS, while we're at it:
true == "0" == 0 == false
function getFoo(f) { if (f) { if (foos[f]) { return foos[f]; } else { return f; } } else { return "error"; } }
function getFoo(f) { return foos[f] || f || "error"; }
> true == "0" false > "0" == 0 true > 0 == false true > true == "0" == 0 == false false
true == !0 == "0" == false
true == (false == false)
> ! 0 == "0" false > 0 == ! "0" true
Worst part of JS, while we're at it: