It might be worthwhile keeping an eye on the C# language discussion on the same operator - http://roslyn.codeplex.com/discussions/540883
From: es-discuss [mailto:es-discuss-boun...@mozilla.org] On Behalf Of A Matías Quezada Sent: Tuesday, 20 May 2014 7:56 PM To: Claude Pache Cc: es-discuss Subject: Re: The Existential Operator I think the current use of this operator will only make sense if the operator interrupts the whole sentence so a?.b.c Will be the same as a && a.b.c And a?().b?.c?.d Will be same as a && (x = a(), x.b && (x.b.c && x.b.c.d)) --- A. Matías Quezada Senior Javascript Developer amati...@gmail.com <mailto:amati...@gmail.com> 2014-05-20 11:31 GMT+02:00 Claude Pache <claude.pa...@gmail.com <mailto:claude.pa...@gmail.com> >: Le 20 mai 2014 à 05:50, Dmitry Soshnikov <dmitry.soshni...@gmail.com <mailto:dmitry.soshni...@gmail.com> > a écrit : > Hi, > > (I remember, I mentioned this couple of years ago, but not sure about whether > it was considered, etc) > > Will the "Existential Operator" for properly accessors be something > interesting to consider for ES7 spec? Currently CoffeeScript uses it well. > > ```js > var street = user.address?.street; > ``` > > The `street` is either the value of the `user.address.street` if the > `address` property exists (or even if it's an object), or `null` / > `undefined` otherwise. > > This (roughly) to contrast to: > > ```js > var street = user.address && user.address.street; > ``` > > (the chain can be longer in many cases). > > The same goes with methods: > > ```js > var score = user.getPlan?().value?.score; > ``` > > If potentially it could be interesting for ES7, I'll be glad helping with the > proposal, grammar and algorithm (unless it was considered previously, and > decided that it's not for ES for some reason). > > P.S.: I tried to solve this issue using default values of destructuring > assignment, but it doesn't help actually. > > Dmitry Question: What is the semantics of the following: a?.b.c Is it the same thing as (a?.b).c (a && a.b).c or the same thing as: a && a.b.c (For the sake of the argument, just ignore the distinction between "falsy" and "null/undefined".) If it is the second option, I fear that the semantics of the so-called "existential operator" is more complicated than just an "operator". —Claude _______________________________________________ es-discuss mailing list es-discuss@mozilla.org <mailto:es-discuss@mozilla.org> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss