Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #28805
| Path | csiph.com!au2pb.net!feeder.erje.net!1.eu.feeder.erje.net!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: Why JavaScript 'seems' to get addition wrong |
| Date | Sat, 03 Oct 2015 05:24:28 +0200 |
| Organization | PointedEars Software (PES) |
| Lines | 51 |
| Message-ID | <1584254.UGq8RPA9Fy@PointedEars.de> (permalink) |
| References | <1588ee9e-9182-41fc-bc23-7b7a33739268@googlegroups.com> <87y4flqp1d.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 1443842669 1261 eJwFwQcBwEAIBDBLzziGHKDgX0ITiJGNq8EUh6MRhOigOp8zsW/q9rhUL7J4NCvKX90Xr/cHFDoRWw== (3 Oct 2015 03:24:29 GMT) |
| X-Complaints-To | abuse@news.solani.org |
| NNTP-Posting-Date | Sat, 3 Oct 2015 03:24:29 +0000 (UTC) |
| User-Agent | KNode/4.14.2 |
| X-User-ID | eJwFwYkBwCAIA8CV0EhIx1Ge/UfonYOLGYfO4+Oj+CpzLDdlfRWRexUcDRp6qpFvw+99LnUNhTKT8Cr54gdgMBX6 |
| Cancel-Lock | sha1:pP+9QsiqTWbPQY1Q33GMQDHhwO0= |
| X-NNTP-Posting-Host | eJwNyccRwEAIBLCWiAsuhzD0X8JZX7mCMWFwmJ8fSZPmSu8yPGSJGje1XClfURarzl8WbCf9ABW5EKw= |
| Xref | csiph.com comp.lang.javascript:28805 |
Show key headers only | View raw
Ben Bacarisse wrote:
> AbdulFattah Popoola <abdulapopoola@gmail.com> writes:
>> One of the most popular gotchas of JavaScript is its behaviour when
>> adding operands. For example, the output of {} + 2 is different from 2
>> + {}.
>
> That's not an example of addition. I think it's better to say that one
> of the gochas of EcmaScript is that + means more than one thing.
If it were another programming language, you might just say that the
operator “+” is overloaded: it does either addition or string concatenation
in ECMAScript, depending on the type of its operands:
window.alert(Array(16).join("wat" - 1) + " Batman!");
(Shamelessly stolen from <https://www.destroyallsoftware.com/talks/wat> when
it was still working ;-))
Unfortunately, with few exceptions (the toString() and valueOf() methods of
objects), in general one cannot define (this) operator overloading in
ECMAScript. (It would be easy if they [ECMA TC39] specified it the Python
way, with Specification algorithms supporting __add__(), __sub__(), etc.
methods on objects. [1] Some of that is now even specified in ECMAScript
2015, with Proxy [2a], and you can make use of that since quite a while
[2b].) But one can implement operators as methods, and call methods instead
of using operators. I have done that in the math library of JSX [3].
>> I explained why the puzzling results occur in this post:
>> http://abdulapopoola.com/2015/09/30/why-javascript-seems-to-get-addition-wrong/.
>>
>> Please do share your feedback.
>
> Share you explanation here, and I'll share my feedback here.
They are posting via Google Groups; you can be quite certain that they do
not even know what “here” (Usenet) actually is.
__________
[1]
<https://docs.python.org/3/reference/datamodel.html?highlight=__add__#emulating-callable-objects> pp.
[2a] <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy> p.
[2b] <http://pointedears.de/wsvn/JSX/trunk/array.js> (jsx.array.Array and
jsx.array.BigArray)
[3] <http://PointedEars.de/wsvn/JSX/trunk/math.js>
<http://PointedEars.de/wsvn/JSX/trunk/math/>
--
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
Why JavaScript 'seems' to get addition wrong AbdulFattah Popoola <abdulapopoola@gmail.com> - 2015-10-02 08:07 -0700
Re: Why JavaScript 'seems' to get addition wrong Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-02 16:16 +0100
Re: Why JavaScript 'seems' to get addition wrong AbdulFattah Popoola <abdulapopoola@gmail.com> - 2015-10-02 19:22 -0700
Re: Why JavaScript 'seems' to get addition wrong Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-10-03 05:24 +0200
Re: Why JavaScript 'seems' to get addition wrong Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2015-10-03 15:55 -0300
csiph-web