Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #18685
| From | "Joao Rodrigues (J.R.)" <groups_jr-1@yahoo.com.br> |
|---|---|
| Newsgroups | comp.lang.javascript |
| Subject | Re: Why is this returning NaN |
| Date | 2013-03-01 18:25 -0300 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <kgr6co$5l3$1@speranza.aioe.org> (permalink) |
| References | (1 earlier) <kgi75q$2lf$1@dont-email.me> <kgp88e$p8o$1@speranza.aioe.org> <6062718.vzGJ4vAIZo@PointedEars.de> <kgqfsg$vdj$1@speranza.aioe.org> <1652233.QWaZaUHVxr@PointedEars.de> |
On 01/03/2013 17:03, Thomas 'PointedEars' Lahn wrote:
> Joao Rodrigues (J.R.) wrote:
>
>> On 01/03/2013 08:46, Thomas 'PointedEars' Lahn wrote:
>>> J.R. wrote:
>>>> The OP'c code fails because converting new Date() to a string
>>>> might produce give a different format than the string being
>>>> used. […]
>>> Nonsense.
>>
>> I mistook the subtraction with the "==" operator.
>
> If so, there is another misconception on your part. In short:
You are inferring what I thought based on what I wrote.
>
> 1. new Date() == "2013/02/26 10:24:00" 2. ToPrimitive(new Date()) ==
> "2013/02/26 10:24:00" 3. [[DefaultValue]](new Date()) == "2013/02/26
> 10:24:00" 4. Number(…) == "2013/02/26 10:24:00" 5. Number(…) ==
> ToNumber("2013/02/26 10:24:00") 6. Number(…) == NaN 7. false
>
> (“NaN” is not equal to anything, not even itself.
Yes!
> It can only be detected with isNaN(…)).
No, isNaN() is not reliable, because it fails badly with other "non NaN"
or "not coercible to NaN" values, e.g.
isNaN("Lahn"); // true
isNaN({}); // true
So, we would be better off if we used:
function isReallyNaN(x) {
return x !== x; // “NaN” is not equal to anything, not even itself
}
Guess who wrote "isNaN is broken and should effectively be deprecated"?
<https://mail.mozilla.org/pipermail/es5-discuss/2009-May/002529.html>
>
>> Then I made a correction in my follow-up post, but it still was
>> incomplete (forgive me as it was past midnight). Okay. Thanks.
>
> Your “correction” was not incomplete; it was wrong. The result “NaN”
> with the original code also is because the operands of “-” are
> converted to _Number_ (instead of String). In short:
>
> 1. Math.abs(new Date() - "2013/02/26 10:24:00") 2.
> Math.abs(Number(new Date()) - Number("2013/02/26 10:24:00")) 3.
> Math.abs(Number(…) - NaN) 4. Math.abs(NaN) 5. NaN
>
> (“NaN” is said to be “toxic”.)
At the risk of being repetitive...
>
> There is another statement that I did not comment on but should have.
> You said in your “correction”:
>
> | Anyway, beware of implicit coercions in JavaScript.
>
> To which I reply:
>
> No; *learn* about implicit type _conversion_ in ECMAScript and its
> implementations, and *learn to leverage* its expressive power.
That's the OP's case, not mine. However, I have appreciated very much
all the references to the ECMAScript documentation for every explanation
of yours. A very good lecture on the subject.
>
> No offense meant or taken.
>
I believe in you, but sometimes your writing sounds a bit rude while you
do not intend to be so. Anyway, it is always worth to follow-up your
explanations although it may hurt one's feelings.
>>>>> Better, use a suitable library to parse the date stamp or
>>>>> construct the Date object using suitable numeric parameters.
>>>>> There is no guarantee that all implementations will parse a
>>>>> notation like 2013/02/26 10:24:00 (the same way).
>>>>
>>>> ACK.
>>>
>>> A Sith^WWannabe cries for their Master^W^Wlibraries when they
>>> get stuck. A Jedi^W^WThe knowledgable uses the power of the
>>> Force^Wlanguages instead:
>>>
>>> var s = "2013/02/26 10:24:00"; var m =
>>> s.match(/^\s*(\d+)\/(\d+)\/(\d+)\s+(\d+):(\d+):(\d+)\s*$/); var
>>> d;
>>>
>>> if (m) { /* * But see also Function.prototype.construct() in
>>> JSX:object.js * * --m[2]; * d = Date.construct(m.slice(1)); */ d
>>> = new Date(m[1], m[2] - 1, m[3], m[4], m[5], m[6]); }
>>
>> I think that he was talking about a personal library some
>> developers create for their own use; I mean he was advising the use
>> of neither date.js nor any other bloated library.
>
> I do not know what he meant, but I doubt it was a “personal
> library”. Indeed, given his record, it is likely that he did mean
> such bloat.
>
--
Joao Rodrigues (J. R.)
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Why is this returning NaN "Tony" <tony.johansson@inport.com> - 2013-02-26 11:54 +0100
Re: Why is this returning NaN Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-02-26 12:09 +0100
Re: Why is this returning NaN "Jukka K. Korpela" <jkorpela@cs.tut.fi> - 2013-02-26 13:45 +0200
Re: Why is this returning NaN "J.R." <groups_jr-1@yahoo.com.br> - 2013-03-01 00:45 -0300
Re: Why is this returning NaN "J.R." <groups_jr-1@yahoo.com.br> - 2013-03-01 01:13 -0300
Re: Why is this returning NaN Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-01 12:48 +0100
Re: Why is this returning NaN "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-03-01 10:06 +0100
Re: Why is this returning NaN Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-01 12:46 +0100
Re: Why is this returning NaN John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-01 14:19 +0000
Re: Why is this returning NaN "Joao Rodrigues (J.R.)" <groups_jr-1@yahoo.com.br> - 2013-03-01 12:01 -0300
Re: Why is this returning NaN Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-01 21:03 +0100
Re: Why is this returning NaN "Joao Rodrigues (J.R.)" <groups_jr-1@yahoo.com.br> - 2013-03-01 18:25 -0300
Re: Why is this returning NaN Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-01 22:35 +0100
Re: Why is this returning NaN Patricia Shanahan <pats@acm.org> - 2013-03-01 20:31 -0800
Re: Why is this returning NaN Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-02 12:49 +0100
Re: Why is this returning NaN "J.R." <groups_jr-1@yahoo.com.br> - 2013-03-03 12:32 -0300
Re: Why is this returning NaN "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-03-03 18:03 +0100
Re: Why is this returning NaN Martin Leese <please@see.Web.for.e-mail.INVALID> - 2013-03-03 10:16 -0700
OT: "javascript" was: Why is this returning NaN Christoph Becker <cmbecker69@gmx.de> - 2013-03-03 20:35 +0100
Re: OT: "javascript" was: Why is this returning NaN "Jukka K. Korpela" <jkorpela@cs.tut.fi> - 2013-03-03 21:43 +0200
Re: OT: "javascript" was: Why is this returning NaN Tim Streater <timstreater@greenbee.net> - 2013-03-03 19:45 +0000
"javascript" (was: OT: "javascript") Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-03 21:09 +0100
Re: "javascript" "J.R." <groups_jr-1@yahoo.com.br> - 2013-03-03 23:19 -0300
Re: "javascript" Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-04 11:27 +0100
Re: "javascript" Tim Streater <timstreater@greenbee.net> - 2013-03-04 13:09 +0000
Re: "javascript" Christoph Becker <cmbecker69@gmx.de> - 2013-03-10 20:50 +0100
Re: "javascript" Tim Streater <timstreater@greenbee.net> - 2013-03-10 20:29 +0000
Re: "javascript" Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-10 23:23 +0100
Re: "javascript" Tim Streater <timstreater@greenbee.net> - 2013-03-10 22:48 +0000
Re: "javascript" Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-10 23:53 +0100
Re: "javascript" Tim Streater <timstreater@greenbee.net> - 2013-03-10 23:23 +0000
Re: "javascript" Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-11 02:57 +0100
Re: "javascript" Tim Streater <timstreater@greenbee.net> - 2013-03-11 08:55 +0000
Re: "javascript" Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-11 17:38 +0100
Re: "javascript" Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-03-12 19:29 +0000
Re: "javascript" Andrew Poulos <ap_prog@hotmail.com> - 2013-03-13 14:36 +1100
Re: "javascript" John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-13 15:20 +0000
Re: "javascript" Andrew Poulos <ap_prog@hotmail.com> - 2013-03-14 11:18 +1100
Re: "javascript" John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-14 10:43 +0000
Re: "javascript" Andrew Poulos <ap_prog@hotmail.com> - 2013-03-15 07:02 +1100
Re: "javascript" John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-15 10:28 +0000
Re: "javascript" Andrew Poulos <ap_prog@hotmail.com> - 2013-03-16 07:17 +1100
Re: "javascript" John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-16 12:04 +0000
Re: "javascript" Andrew Poulos <ap_prog@hotmail.com> - 2013-03-17 08:17 +1100
Re: "javascript" John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-17 11:13 +0000
Re: "javascript" Andrew Poulos <ap_prog@hotmail.com> - 2013-03-17 23:15 +1100
Re: "javascript" John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-17 16:42 +0000
Re: "javascript" Andrew Poulos <ap_prog@hotmail.com> - 2013-03-18 07:47 +1100
Re: "javascript" John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-18 15:01 +0000
Re: "javascript" Andrew Poulos <ap_prog@hotmail.com> - 2013-03-19 07:34 +1100
Re: "javascript" John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-19 15:04 +0000
Re: "javascript" Andrew Poulos <ap_prog@hotmail.com> - 2013-03-20 07:40 +1100
Re: "javascript" Mike Duffy <Use.web.form@website_in_sig.com> - 2013-03-13 12:03 +0000
Re: "javascript" Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-03-14 21:22 +0000
Re: "javascript" Mike Duffy <Use.web.form@website_in_sig.com> - 2013-03-15 01:44 +0000
Re: "javascript" Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-03-16 19:42 +0000
Re: "javascript" Mike Duffy <Use.web.form@website_in_sig.com> - 2013-03-17 18:25 +0000
Re: "javascript" Tim Streater <timstreater@greenbee.net> - 2013-03-17 19:01 +0000
Re: "javascript" Gene Wirchenko <genew@telus.net> - 2013-03-15 10:55 -0700
Re: "javascript" John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-13 15:21 +0000
Re: "javascript" (was: OT: "javascript") Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-03-04 13:07 +0000
Re: "javascript" Christoph Becker <cmbecker69@gmx.de> - 2013-03-10 20:34 +0100
Re: "javascript" Tim Streater <timstreater@greenbee.net> - 2013-03-10 19:39 +0000
Re: OT: "javascript" was: Why is this returning NaN "J.R." <groups_jr-1@yahoo.com.br> - 2013-03-03 22:41 -0300
Re: OT: "javascript" was: Why is this returning NaN "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-03-04 09:57 +0100
Re: OT: "javascript" was: Why is this returning NaN Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-04 11:25 +0100
Re: OT: "javascript" was: Why is this returning NaN John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-04 14:52 +0000
Re: OT: "javascript" was: Why is this returning NaN Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2013-03-10 01:02 +0100
Re: OT: "javascript" was: Why is this returning NaN John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-10 10:52 +0000
Re: OT: "javascript" was: Why is this returning NaN Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2013-03-10 12:44 +0100
Re: OT: "javascript" was: Why is this returning NaN John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-10 17:49 +0000
Re: OT: "javascript" was: Why is this returning NaN Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2013-03-20 01:21 +0100
Re: OT: "javascript" was: Why is this returning NaN John G Harris <niam@jghnorth.org.uk.invalid> - 2013-03-20 15:25 +0000
Re: OT: "javascript" was: Why is this returning NaN Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2013-03-30 01:28 +0100
Re: Why is this returning NaN Tim Streater <timstreater@greenbee.net> - 2013-02-26 12:00 +0000
Re: Why is this returning NaN Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-02-26 18:07 +0100
Re: Why is this returning NaN Gregor Kofler <usenet@gregorkofler.com> - 2013-02-26 13:42 +0100
Re: Why is this returning NaN Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-02-27 20:43 +0000
Re: Why is this returning NaN "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-02-28 09:19 +0100
csiph-web