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”.
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)
Returns “banana”
wut
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
.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)