Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #26915

Re: puzzled by example code using the logical OR

Path csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups comp.lang.javascript
Subject Re: puzzled by example code using the logical OR
Date Mon, 23 Feb 2015 23:12:07 +0100
Organization PointedEars Software (PES)
Lines 63
Message-ID <2611492.d6m9CFKcER@PointedEars.de> (permalink)
References <088f6cf2-dbfe-4633-8c69-0bed2328a067@googlegroups.com> <XnsA44ADF74E9D86eejj99@194.109.133.133> <87sidwi93w.fsf@bsb.me.uk>
Reply-To Thomas 'PointedEars' Lahn <cljs@PointedEars.de>
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding 8Bit
X-Trace solani.org 1424729607 10695 eJwFwQcBACAIBMBKPMiKo4z+EbxTMVj5MbWjqxtLzjKyF1ozog8LvtTZkzJRSw/p3UHMkPgl1hEr (23 Feb 2015 22:13:27 GMT)
X-Complaints-To abuse@news.solani.org
NNTP-Posting-Date Mon, 23 Feb 2015 22:13:27 +0000 (UTC)
User-Agent KNode/4.14.2
X-User-ID eJwNxMEBwCAIA8CVDELEccDo/iO097iYBM9yBj1evKFuWxJn6f1ZyrdFHhTEEXBzFq5tVM0rw27LJrKetOIDVuIVew==
Cancel-Lock sha1:C9LFDE4RZ5cUuRTFUMclyf5Zk3Y=
X-NNTP-Posting-Host eJwFwYERACEIBLGW8DkWLEcZ6b+ET8JZdIpAMTFSujVZ9g07j1QwdNHrlDa3D8a7bvFqvR/9PhBV
Xref csiph.com comp.lang.javascript:26915

Show key headers only | View raw


Ben Bacarisse wrote:

> "Evertjan." <exxjxw.hannivoort@inter.nl.net> writes:
> 
>> JeffG <jeffgutsell@fuse.net> wrote on 23 feb 2015 in
>> comp.lang.javascript:
>>
>>> I've been looking at a discussion of creating objects that
>> are
>>> containers of all related functions and vars. An example
>> first step is
>>> as follows: ar AppSpace = AppSpace || {};
>>> I don't see the purpose of "||". I would appreciate an
>> explanation since
>>> I cannot get a response from the author. I thought the
>> logical OR only
>>> returns true or false based on comparing two values or
>> expressions.

This quotation (sic!) increases reader’s risk for getting eye cancer 
considerably.  Whoever caused it should LART themselves and get a working 
newsreader before their next posting.

>> Incorrect. That only happens if || compares boolean values.

Nonsense.  “||” is not a comparison operator to begin with.

>> AppSpace = AppSpace || {};
>>
>> AppSpace is set to AppSpace [so effectivly remains so],
>> unless AppSpace returns false or empty or 0 or undefined,
>> then AppSpace is set to {}, an empty object.
> 
> It's false, the empty string, 0 (both +0 and -0), NaNs, undefined and
> null that are considered false.  (It's common not to care about -0 and
> NaNs, but null matters a bit more.)

Bottom line: The intention of this is that “AppSpace” is assigned a 
reference to a new Object instance if, and only if, that has not been
done before.

The pattern is questionable, and I try to avoid it, because reading a 
property needs not yield the same value as writing it, host objects may not 
be written to (people who use this do not know the difference), and one 
assignment there is unnecessary:

  if (!AppSpace) { AppSpace = {}; }

is not much longer, but it is more obvious, less error-prone, and more 
efficient in the worst case.  It also has the advantage that, should it be 
necessary to adapt the condition for assignment (for example, using 
“typeof”), it is easier to do modify accordingly.

BTW, “return” is not the proper term for this; no function is called that 
could return anything, and the relevant Specification’s algorithms (which do 
return values) require a different, more elaborate wording to be referred to 
correctly.

-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

puzzled by example code using the logical OR JeffG <jeffgutsell@fuse.net> - 2015-02-23 11:20 -0800
  Re: puzzled by example code using the logical OR "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-02-23 21:57 +0100
    Re: puzzled by example code using the logical OR Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-02-23 21:57 +0000
      Re: puzzled by example code using the logical OR Denis McMahon <denismfmcmahon@gmail.com> - 2015-02-23 22:10 +0000
        Re: puzzled by example code using the logical OR Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-02-23 23:39 +0100
      Re: puzzled by example code using the logical OR Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-02-23 23:12 +0100
  Re: puzzled by example code using the logical OR Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2015-02-23 23:09 -0300
    Re: puzzled by example code using the logical OR Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2015-02-23 23:26 -0300

csiph-web