Re:%20Re%3A%20Looking%20for%20Champion%3A%20Null%20Coalescing%20%28%3F%3F%29%20and%20Null%20Conditional%0A%09Member%20Access%20%28%3F.%29%20operators&In-Reply-To=%3CCAAuY5VfQ7bDx%3D3LVPsNf78jbDFHqYkK%2BQgMui9EgsqQOSQ0%3DKw%40mail.gmail.com%3E
I prefer u || 0
Yes, but that conflates falsey values; ??
should be about recognising
whether values exist, not whether they are truthy.
Typically ||
is sufficient. Yes if you want to allow empty strings and/or
0, you would need to add checks for those to the left of the ||
, but I'm
not sure that's a bad thing to require in JavaScript.
The nullish conditional operator, however ( ?.
and ?[
) , I think is a
bigger addition to the language.
I do like the idea of ??
, I only wanted to point out that sticking to x !== null && x !== undefined
is not needed. After all, null == undefined
only to each other. The rules of soft comparison are known and won’t be changed, so let’s take advantage of them while awaiting for ??
.Od: "Naveen Chawla" <naveen.chwl at gmail.com>Do: "Michael Rosefield" <rosyatrandom at gmail.com>; Wysłane: 15:36 Czwartek 2017-12-21Temat: Re: %20Re%3A%20Looking%20for%20Champion%3A%20Null%20Coalescing%20%28%3F%3F%29%20and%20Null%20Conditional%0A%09Member%20Access%20%28%3F.%29%20operators&In-Reply-To=%3CCAAuY5VfQ7bDx%3D3LVPsNf78jbDFHqYkK%2BQgMui9EgsqQOSQ0%3DKw%40mail.gmail.com%3ETypically ||
is sufficient. Yes if you want to allow empty strings and/or 0, you would need to add checks for those to the left of the ||
, but I'm not sure that's a bad thing to require in JavaScript.The nullish conditional operator, however ( ?.
and ?[
) , I think is a bigger addition to the language.On Thu, 21 Dec 2017 at 18:05 Michael Rosefield <rosyatrandom at gmail.com> wrote:Yes, but that conflates falsey values; ??
should be about recognising whether values exist, not whether they are truthy.On Thu, 21 Dec 2017 at 12:20 Naveen Chawla <naveen.chwl at gmail.com> wrote:I prefer u || 0
On Thu, 21 Dec 2017 at 13:56 Sebastian Cholewa <sebastian.cholewa at interia.eu> wrote:
It’s still longer than ??
but instead of:(u !== undefined && u !== null) ? u : 0
one can use:u != null ? u : 0
It’s still longer than
??
but instead of:(u !== undefined && u !== null) ? u : 0
one can use:u != null ? u : 0