Wcześniej przyglądałem się kodowi node.js i zauważyłem, że facet, który go napisał, wydaje się faworyzować następującą składnię:
var fn = function (param) {
var paramWithDefault = null == param ? 'Default Value' : param;
}
Ponad to, co uważam za bardziej zwięzłe:
var fn = function (param) {
var paramWithDefault = param || 'Default Value';
}
Zastanawiałem się, czy druga forma jest w rzeczywistości bardziej akceptowalną społecznie składnią JavaScript, widziałem ją na wolności więcej razy niż operator trójskładnikowy w tym celu.
Zauważam, że w pierwszym przykładzie używa podwójnej równości (nie potrójnej równości), co oznacza, że będzie ona traktowana jako „niezdefiniowana” jako zero, co zmniejszyłoby jeden wpływ, o którym mogłem pomyśleć. Jednak czytałem w wielu miejscach, że == jest raczej złym operatorem w JavaScript (JSLint jest temu bardzo przeciwny, IIRC).