Я раніше дивився на який-небудь код node.js, і помітив, що хлопець, який його написав, здавався перевагою наступного синтаксису:
var fn = function (param) {
var paramWithDefault = null == param ? 'Default Value' : param;
}
Щодо того, що я вважаю більш стислим:
var fn = function (param) {
var paramWithDefault = param || 'Default Value';
}
Мені було цікаво, чи справді друга форма є більш соціально прийнятним синтаксисом JavaScript, я бачив це в дикій природі більше разів, ніж тернальний оператор для цієї мети.
Я зауважу, що в першому прикладі він використовує подвійні рівні (а не потрійні рівні), а значить, він буде вважати "невизначеним" як нульовим, що зменшило б один вплив, про який я міг би подумати. Однак я читав у багатьох місцях, що == є досить злим оператором у JavaScript (JSLint дуже проти цього, IIRC).