<div dir="ltr">hi<div><br></div><div>I started the thread with this question because I thought exactly in both performance (short circuit) and readability.</div><div><br></div><div>I got a little bit lost in this thread here...looks like there are some other e-mails mixed to it!</div><div><br></div><div>But anyways, bear with me:</div><div><br></div><div>```</div><div>// the expression</div><div>let x = a || b;</div><div>// could be</div><div>let x;</div><div>if (a) { x = a; }</div><div>else { x = b; }</div><div>```</div><div><br></div><div>So...the operator "||" in THIS particular case is also just an alternative, and yet extremely useful (and used). It is short, and is it beautiful for reading.</div><div>That OR could be the good old "if"! Even though, I use it everywhere I can.</div><div><br></div><div>```</div><div>// the expression</div><div>if (obj.prop.prop2 === 'a' : 'b' : 'c') { ... }</div><div>// could be</div><div>if (obj.prop.prop2 === 'a' || obj.prop.prop2 === 'b'<span class="inbox-inbox-Apple-converted-space"> </span>|| obj.prop.prop2 === 'c') { ... }</div><div>```</div><div><br></div><div>I see the same feeling here...yes, we could use other approaches, we could use destructors using the keys of an object...we could use [].contains, [].some, switch/case...but this is a much more beautiful way of doing it :)</div><div><br></div><div>I don't think it would make sense for &&, once things are not supposed to be equal to two different values</div><div><br></div><div>Again, just a suggestion, but one thing I like in JavaScript is its readability and power of "deduction power".</div><div>The first time I read a code using || in an assignment (and I had no idea what that was, much younger, learning by myself, not knowing english, with almost zero access to internet), it toke me about 5 seconds to "guess" its behavior...it simply makes sense.</div><div><br></div><div>Thanks.</div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Feb 3, 2017 at 6:50 PM Claude Pache <<a href="mailto:claude.pache@gmail.com">claude.pache@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="gmail_msg">
> Le 3 févr. 2017 à 21:05, Bob Myers <<a href="mailto:rtm@gol.com" class="gmail_msg" target="_blank">rtm@gol.com</a>> a écrit :<br class="gmail_msg">
><br class="gmail_msg">
> If you're worried about short-circuiting, then<br class="gmail_msg">
><br class="gmail_msg">
> ```<br class="gmail_msg">
> [() => a, () => b].some(x => c === x())<br class="gmail_msg">
> ```<br class="gmail_msg">
<br class="gmail_msg">
Even shorter: `(_ => _ === a || _ === b )(c)`<br class="gmail_msg">
<br class="gmail_msg">
But more seriously: Now you have another issue, namely readability.<br class="gmail_msg">
<br class="gmail_msg">
—Claude<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
es-discuss mailing list<br class="gmail_msg">
<a href="mailto:es-discuss@mozilla.org" class="gmail_msg" target="_blank">es-discuss@mozilla.org</a><br class="gmail_msg">
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" class="gmail_msg" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br class="gmail_msg">
</blockquote></div>