Ternary operator enhancement proposal
Claude Pache
claude.pache at gmail.com
Wed Nov 13 14:48:09 UTC 2019
> Le 13 nov. 2019 à 03:43, devlato <ecma6 at devlato.com> a écrit :
>
> Hey folks,
>
> not sure if you haven't discussed something similar, but what do you think about making an enhancement for the ternary operator, to make it more powerful?
> I've created a small explanatory doc on GitHub: https://github.com/devlato/proposal-ternary-placeholder
>
> Warmest regards,
> Denis
>
The generic problem is: you do some computation, and you want to reuse the result of that computation later.
The generic solution is to use a temporary variable:
```js
// declare a temporary variable at the top of some scope
var _;
// later, use it:
const X = () => (_ = x?.y?.z) ? doSomethingWithValue(_) : null;
```
Now, you are not satisfied with the existing solution, and you want to avoid declaration of temporary variables in some outer scope...? Maybe:
```js
const X = () => (#1 = x?.y?.z) ? doSomethingWithValue(#1) : null;
```
(Any similarity with https://developer.mozilla.org/en-US/docs/Archive/Web/Sharp_variables_in_JavaScript <https://developer.mozilla.org/en-US/docs/Archive/Web/Sharp_variables_in_JavaScript> is not at all fortuitous.) However, I’m not convinced that the need to declare your temporary variables is such a problem that it is worth the introduction of new syntax.
—Claude
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20191113/fdb93e70/attachment.html>
More information about the es-discuss
mailing list