this post was submitted on 04 Jun 2025
169 points (98.3% liked)
Programmer Humor
36208 readers
102 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Returns "banana"
wut
I'm guessing the + + in the middle returns NaN
Indeed, the unary plus operator tries to convert whatever is after it to a number if it isn't already. Since 'a' is not a valid number, it returns NaN (not a number)
This part is the same as writing
'a'++
and that returns "NaN" (short for "not a number") since you can't increment a character, but this return type is a string, so the interpreter just concatenates it with the other letters:baNaNa
. Then that string is converted to lower case to give the final result, "banana".The space makes that two different tokens, in reality what happens is 'a' + (+'a') that resolves to 'a' + 'NaN'.
Yep, I believe you're right
Ironically
'a'++
works in C/C++ because'a'
ischar
where in JS 'a' isstring
.