> Le 8 févr. 2016 à 01:16, Bergi <[email protected]> a écrit : > > Claude Pache wrote: >> >>> .? >>> (?) >>> [?] >> >> Yes, that syntax is possible. Whether it is preferable is a question of >> taste. Personally, I don’t like it: >> >> * I slightly prefer `?.` over `.?` for the following reason: The `?.` token >> may be conceptually separated in two, first the question mark which checks >> whether the expression at its left evaluates to null/undefined (and orders >> to stop processing if it is the case); then the dot which proceeds with >> property lookup. > > Totally agreed. > >> * I find that the question mark inside the brackets is out of place, as it >> isn’t part of the arguments (for function call) or of the expression >> defining the key (for property access). > > I agree here as well, it does feel out of place, and `?[…]`/`?(…)` would feel > a lot more natural. Given that those are not feasible for parsing however, I > would still prefer them > > obj[?expr] > func(? …args) > new C(? …args) > > over the proposed alternative > > obj?.[expr] > func?.(…args) > new C?.(…args) > > where the placement of the dot is just horrifying my eyes.
Personally, I'm less attached to aesthetics than legibility. > Maybe we could at least use some other character instead of the dot? > > obj?:[expr] > func?:(…args) > new C?:(…args) > > might bear too much resemblance to the ternary, but imo the colon fits better > than the dot here. Placing the colon before the interrogation mark might also work (at the condition we don’t intend to use `?` as a prefix operator): ```js obj:?.prop // (not needed, for symmetry) obj:?[expr] func:?(...args) ``` —Claude _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

