Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #39989
| Path | csiph.com!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
| Newsgroups | comp.lang.javascript |
| Subject | Re: Understanding && |
| Date | Mon, 19 Apr 2021 23:13:26 +0100 |
| Organization | A noiseless patient Spider |
| Lines | 80 |
| Message-ID | <87fszlzzw9.fsf@bsb.me.uk> (permalink) |
| References | <U_CdnQWSXulHj-T9nZ2dnUU7-evNnZ2d@westnet.com.au> <slrns7ishn.4j8.jon+usenet@raven.unequivocal.eu> <87wnt2e06e.fsf@bsb.me.uk> <slrns7jb5v.4j8.jon+usenet@raven.unequivocal.eu> <87mttydm95.fsf@bsb.me.uk> <ie16fpFavc9U1@mid.individual.net> <87lf9ga4gz.fsf@bsb.me.uk> <ie58ilF4ao6U1@mid.individual.net> <87r1j6yq6u.fsf@bsb.me.uk> <slrns7rv41.6lk.jon+usenet@raven.unequivocal.eu> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=iso-8859-1 |
| Content-Transfer-Encoding | 8bit |
| Injection-Info | reader02.eternal-september.org; posting-host="97eff4e9a810452bcd6ea147a93a2f24"; logging-data="28442"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+PKf+MCeoWVdhOQVa3Ac55/+KegckcQC4=" |
| Cancel-Lock | sha1:rH3MoESC/1LA5ZpVzqXe/83egnI= sha1:aTKOq3pxo174sjlUxupB0P+9ZHM= |
| X-BSB-Auth | 1.22fa917a85517a19d404.20210419231326BST.87fszlzzw9.fsf@bsb.me.uk |
| Xref | csiph.com comp.lang.javascript:39989 |
Show key headers only | View raw
Jon Ribbens <jon+usenet@unequivocal.eu> writes:
> On 2021-04-19, Ben Bacarisse <ben.usenet@bsb.me.uk> wrote:
>> Arno Welzel <usenet@arnowelzel.de> writes:
>>> But this is something one needs to know besides the fact that "&&" means
>>> "logical and" and "||" means "logical or". Therefore I call i at least
>>> bad style to rely on this fact and create code like
>>
>> OK, I see what you mean. I disagree, but I'm not sure that it matters
>> enough to say much about it. Bottom line: programmer should know the
>> language, and the language does guarantee what you think of as a
>> convention.
>>
>>> return
>>> statement1 &&
>>> statement2 &&
>>> statement3 &&
>>> statement4;
>>
>> (Odd terminology. These have to expressions, not statements.)
>>
>>> instead of
>>>
>>> if (!statement1) {
>>> return false;
>>> }
>>> if (!statement2) {
>>> return false;
>>> }
>>> if (!statement3) {
>>> return false;
>>> }
>>> return statement 4;
>>>
>>> Yes, the latter one needs more lines but is obvious what the code does
>>> even if you don't remember that "&&" is evaluated from left to right and
>>> that the the evaluation stops at the first statement which returns
>>> false.
>>
>> Need three more lines:
>>
>> if (!statement1) {
>> return false;
>> }
>> if (!statement2) {
>> return false;
>> }
>> if (!statement3) {
>> return false;
>> }
>> if (!statement4) {
>> return false;
>> }
>> return true;
>>
>> You could write return !!statement4; or return statement4 == true; but I
>> assume you'd rather keep the pattern going.
>
> You're kinda disproving your own point here though, since you're the one
> claiming that the boolean expression is easy for you to understand, but
> you don't actually know what it does - in fact both your and Arno's
> versions are wrong:
Touché. I was forgetting what language this was. This topic comes up
every year or so in comp.lang.c.
But I don't think I'm making your case. I'm making mine. Programmers
should learn the language!
> return statement1 && statement2 && statement3 && statement4
>
> is not equivalent to either of the above, it is equivalent to:
>
> if (!(temp = statement1)) return temp
> if (!(temp = statement2)) return temp
> if (!(temp = statement3)) return temp
> return statement4
--
Ben.
Back to comp.lang.javascript | Previous | Next — Previous in thread | Find similar | Unroll thread
Understanding && Andrew Poulos <ap_prog@hotmail.com> - 2021-04-16 14:30 +1000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-16 11:00 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-16 11:17 +0000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-16 16:09 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-16 15:26 +0000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-16 21:09 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-16 21:06 +0000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-17 02:01 +0100
Re: Understanding && The Natural Philosopher <tnp@invalid.invalid> - 2021-04-17 08:33 +0100
Re: Understanding && John G Harris <niam@jghnorth.org.uk.invalid> - 2021-04-17 12:06 +0100
Re: Understanding && The Natural Philosopher <tnp@invalid.invalid> - 2021-04-17 14:13 +0100
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-17 15:50 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-17 15:21 +0000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-17 23:46 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-17 23:46 +0000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-18 23:59 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-19 13:56 +0000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-19 23:08 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-19 22:52 +0000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-20 01:23 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-20 01:08 +0000
Re: Understanding && Arno Welzel <usenet@arnowelzel.de> - 2021-04-18 00:49 +0200
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-18 17:26 +0100
Re: Understanding && Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-04-17 17:05 +0200
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-17 23:04 +0100
Re: Understanding && Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-04-18 00:48 +0200
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-18 17:13 +0100
Re: Understanding && Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-04-19 21:58 +0200
Re: Understanding && John G Harris <niam@jghnorth.org.uk.invalid> - 2021-04-18 18:20 +0100
Re: Understanding && Arno Welzel <usenet@arnowelzel.de> - 2021-04-18 00:40 +0200
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-18 00:14 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-18 00:01 +0000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-18 17:44 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-18 17:51 +0000
Re: Understanding && Arno Welzel <usenet@arnowelzel.de> - 2021-04-19 13:41 +0200
Re: Understanding && John G Harris <niam@jghnorth.org.uk.invalid> - 2021-04-19 15:02 +0100
Re: Understanding && The Natural Philosopher <tnp@invalid.invalid> - 2021-04-20 17:40 +0100
Re: Understanding && John G Harris <niam@jghnorth.org.uk.invalid> - 2021-04-20 18:19 +0100
Re: Understanding && The Natural Philosopher <tnp@invalid.invalid> - 2021-04-21 10:11 +0100
Re: Understanding && John G Harris <niam@jghnorth.org.uk.invalid> - 2021-04-21 19:46 +0100
Re: Understanding && The Natural Philosopher <tnp@invalid.invalid> - 2021-04-22 13:48 +0100
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-19 21:28 +0100
Re: Understanding && Jon Ribbens <jon+usenet@unequivocal.eu> - 2021-04-19 21:56 +0000
Re: Understanding && Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-04-19 23:13 +0100
csiph-web