Section One BBS

Welcome, Guest.


Subject: Re: JavaScript vs. C/C++ behavior Date: Sun Jul 07 2019 01:15 pm
From: Digital Man To: Fort Exile

  Re: Re: JavaScript vs. C/C++ behavior
  By: Fort Exile to Mortifis on Sun Jul 07 2019 10:03 am

 >   Re: Re: JavaScript vs. C/C++ behavior
 >   By: Mortifis to Digital Man on Tue May 21 2019 12:51 am
 >
 >  >  > In JavaScript:
 >  >  >         i = 0 || 2; // i == 2
 >
 >  > the induction of i, anything greater than 0 but less than 2 is 1) ... in
 >  > JS if the callback is greater than the initial state (0) then it is
 >  > forced to 2 .. risking looking like a moron ... there wasn't much meat on
 >  > the bone in
 >
 > The trouble with boolean operations in JavaScript is the concept of "truthy"
 > anf "falsy" values. Javascript will always try and make a boolean comparison
 > work, even if it is not comparing two boolean values. Thus, we wind up with
 > "falsy" values that evaluate to FALSE when compared, and "truthy" values
 > that evaluate to TRUE.
 >
 > The "falsy" values are: FALSE, 0, "" '' and `` (the empty string), null,
 > undefined, and NaN.

NaN != false or true.

 > The "truthy" values are everything else, including empty objects and arrays.
 >
 > This particular assignment does a boolean OR comparison. The first element
 > that is "truthy" is the one that is assigned to the variable. Since 0 is
 > always a "falsy" value, it is skipped, and we wind up with i === 2.

And the original implementation of JavaScript/LiveScript didn't actually behave 
that way, which is interesting. It was introduced as a "feature" as I suspect mu
ch of the languages weird (and cool) warts were.

                                            digital man

Synchronet "Real Fact" #50:
JAM and Squish were considered before developing Synchronet Message Base format.
Norco, CA WX: 76.7°F, 61.0% humidity, 0 mph S wind, 0.00 inches rain/24hrs

---
 ■ SynchronetVertrauen Home of Synchronet [vert/cvs/bbs].synchro.net

Previous Message       Next Message
In Reply To: Re: JavaScript vs. C/C++ behavior (Fort Exile)