Stavo dando un'occhiata a qualche codice node.js prima e ho notato che il tizio che l'ha scritto sembrava preferire la seguente sintassi:
var fn = function (param) {
var paramWithDefault = null == param ? 'Default Value' : param;
}
su ciò che considero più conciso:
var fn = function (param) {
var paramWithDefault = param || 'Default Value';
}
Mi stavo chiedendo se la seconda forma è in realtà una sintassi JavaScript socialmente accettabile, l'ho vista in giro più volte rispetto all'operatore ternario per questo scopo.
Ho notato che nel primo esempio usa i doppi uguali (non i triple equals), il che significa che conterà "undefined" come null, il che ridurrebbe un impatto a cui potrei pensare. Tuttavia, ho letto in numerose parti che == è un operatore piuttosto malvagio in JavaScript (JSLint è molto contro di esso, IIRC).