- cross-posted to:
- programmer_humor@programming.dev
- cross-posted to:
- programmer_humor@programming.dev
That’s easily explained by
+
being the concatenation operator though. Those are two different operations with the same symbolJust use typescript anyway lol
+
is overloaded for string concatenation, but-
isn’t so the interpreter coerces the “11” into a number first.yup
('b' + 'a' + + 'a' + 'a').toLowerCase()
Returns “banana”
wut
‘a’ + +
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