compare string with numbers in javascript

M

Matt

if (123 > 33) will return true

and

if ("123" > 33) will return true

So my question is, if the above behaviors are the same?? If string is
a number, and
compare with another number, it will be the same behavior as compare 2
numbers?

In this case, it is comparing 2 strings that are numbers, so they are
string comparisons here.
correct?

if ("123" > "33") will return true

In this case, "33a" is not a number, that's why when it compare with
another number, it
always return false. correct?

if ("33a" > 33) will return false

please advise. thanks!!
 
L

Lasse Reichstein Nielsen

if (123 > 33) will return true

and

if ("123" > 33) will return true
Correct.

So my question is, if the above behaviors are the same?? If string
is a number, and compare with another number, it will be the same
behavior as compare 2 numbers?

Yes. The "greater than" comparison operator, when given a number and
another argument, will convert the other argument to a number. The
conversion is the same as what the Number function does.
In this case, it is comparing 2 strings that are numbers, so they are
string comparisons here.
correct?

Correct. If *both* arguments are strings, the comparsion is lexical
comparison.
if ("123" > "33") will return true

The result of ("123" > "33") is false, since the first character of
the first string is smaller than the first character of the second
string.
In this case, "33a" is not a number, that's why when it compare with
another number, it always return false. correct?

Correct, because (Number("33a")) yields NaN, and (NaN > 33) is false.

/L
 
G

Grant Wagner

L

Lasse Reichstein Nielsen

Grant Wagner said:
Actually, (Number.NaN < 33) is false as well. As is (Number.NaN ==
Number.NaN).

(Number.NaN != Number.NaN) is true, which goes against common sense,

I'd say that (NaN == NaN) being false is what goes against common sense.
From that, I find it entirely logical that
(NaN != NaN) is the same as !(NaN == NaN)

/L
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top