There are two parts to this puzzle: floating point numbers and type insensitivity using ==.
-, 475957E-8905 475957 * 10 ^ -8905, ; , 0 - javascript. , eval("475957E-8905") 0.
, .
== , , nodejs ( JavaScript) , .
eval("475957E-8905") 0, "475957E-8905" . , 0. , 0 == 0, .
, , eval("3") == "3" eval("3") == 3 - .
, :
eval("475957E-8905") === "475957E-8905"
false, === javascript true, .