Ранее я просматривал какой-то код 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).