<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-06-02 18:57 GMT+02:00 Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.org" target="_blank">brendan@mozilla.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
You might hope for that, but as we both noted, `?[` is not going to fly. Don't break the (minified) Web.<br></blockquote><div><br></div><div>Which is why my proposal was about `??`. I believe there's currently no valid way to use a double question mark inĀ  JS, so even `??[` should be easy to figure out what it means.<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
The prefix idea generalizes:<br>
<br>
?obj[key]<br>
obj[?key]<br>
obj[key1][?key2]<br>
<br>
and if you are not using computed property names, rather literal ones:<br>
<br>
obj.?prop1<br>
etc.<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div>I found this syntax to conflict with itself. As Andreas Rossberg says, what does `orders[?client.key].price` mean? Does it mean "check if the client exists, and if not, return the price of the null order", or does it mean "check if the order for this client exists, and return null if it doesn't"? I don't see a way how both meanings can be made possible with this form of prefix notation.<br></div></div><br></div></div>