this post was submitted on 14 Aug 2023
589 points (92.4% liked)

Programmer Humor

32464 readers
269 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] rikudou@lemmings.world 1 points 1 year ago (1 children)

Doesn't it widen the types regardless of position? Meaning 1 == "1" will be compared as strings, not numbers.

[–] adrian783@lemmy.world 1 points 1 year ago (1 children)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality

mdn goes into it more and it's way more involved than I thought, looks like order of operand doesn't matter. see the number to string section

[–] rikudou@lemmings.world 1 points 1 year ago

It seems it is that way, which is weird. You should always convert to the widest type, meaning string for comparing numbers and strings. I just checked that 1 == "01" is true, which means that "01" gets cast to an integer. And according to the document it might be that for example 1 == "a" would basically be interpreted as 1 === NaN which is false.