Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #26921
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!weretis.net!feeder4.news.weretis.net!news.mixmin.net!aioe.org!.POSTED!not-for-mail |
|---|---|
| From | Joao Rodrigues <groups_jr-1@yahoo.com.br> |
| Newsgroups | comp.lang.javascript |
| Subject | Re: puzzled by example code using the logical OR |
| Date | Mon, 23 Feb 2015 23:09:37 -0300 |
| Organization | Aioe.org NNTP Server |
| Lines | 42 |
| Message-ID | <mcgmh2$99b$1@speranza.aioe.org> (permalink) |
| References | <088f6cf2-dbfe-4633-8c69-0bed2328a067@googlegroups.com> |
| NNTP-Posting-Host | pltOE+fmsNEv99gIXMjipg.user.speranza.aioe.org |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=windows-1252; format=flowed |
| Content-Transfer-Encoding | 8bit |
| X-Complaints-To | abuse@aioe.org |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
| X-Notice | Filtered by postfilter v. 0.8.2 |
| Xref | csiph.com comp.lang.javascript:26921 |
Show key headers only | View raw
On 02/23/2015 04:20 PM, JeffG wrote:
> 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.
>
According to the ES 5.1, §11.11 (Binary Logical Operators), "The value
produced by a && or || operator is not necessarily of type Boolean. The
value produced will always be the value of one of the two operand
expressions".
<http://ecma-international.org/ecma-262/5.1/#sec-11.11>
Also, as described in ES 5.1, §9.2 (ToBoolean), there are seven "falsy"
values: false, +0, -0, "", NaN, null, and undefined. All other values
are "truthy".
<http://ecma-international.org/ecma-262/5.1/#sec-9.2>
So, AppSpace || {} is evaluated as follows:
If ToBoolean(AppSpace) is true, return AppSpace; otherwise, return {}
(an empty object).
But it is a tad efficient to use:
var AppSpace;
if (!AppSpace) {
AppSpace = {};
}
Or simply:
var AppSpace;
if (!AppSpace) AppSpace = {};
The logical operators may be described in the following table:
<https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators>
--
Joao Rodrigues
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll 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