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

# Sebastian Cholewa (6 years ago)

It’s still longer than ?? but instead of:(u !== undefined && u !== null) ? u : 0one can use:u != null ? u : 0

# Naveen Chawla (6 years ago)

I prefer u || 0

# Michael Rosefield (6 years ago)

Yes, but that conflates falsey values; ?? should be about recognising whether values exist, not whether they are truthy.

# Naveen Chawla (6 years ago)

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.

# Sebastian Cholewa (6 years ago)

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 || 0On 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 : 0one can use:u != null ? u : 0