Which of these javascript expressions is false?
Which of these javascript expressions is false?
Which of these javascript expressions is false?
You're viewing a single thread.
C, because yes.
I'd say C too because that's the only one that would be True in a normal programming language and this is javascript so...
probably not true in most other langauges. although I'm not well versed in the way numbers are represented in code and what makes a number "NaN", something tells me the technical implications of that would be quite bad in a production environment.
the definitive way to check for NaN in JS would probably be something like
// with `num` being an unknown value // Convert value to a number const res = Number(num); /* * First check if the number is 0, since 0 is a falsy * value in JS, and if it isn't, `NaN` is the only other * falsy number value */ const isNaN = res !== 0 && !res;
NaN is a special floating point value. https://en.wikipedia.org/wiki/IEEE_754
It's weird but it makes sense why it was chosen to be this way.
Another way to check whether a number is NaN
:
js
const isNaN = res !== res;
As NaN
is the only value out there that is not equal to itself. See my other comment on this post for more: https://programming.dev/comment/17221245
This comparison should work in every programming language out there that implements/respects/uses IEEE 754 floating point numbers.
It's not true in a normal programming language. If it is true in yours, you should stop using it immediately.
A non type should be a type. It should be of the type none. And it is in good script languages like Python so I don't know why you think it shouldn't.
They say a picture is worth a thousand words.
That's a Numpy type, not a Python typesm, try a=None b=None a==b
That's not a type. A NaN is a floating point number (of type float). I used numpy because that's the easiest way to get a NaN.
This is part of the floating point standard.
This was never about None, which is a completely different thing.
Can't be C, C is the true path.