this post was submitted on 04 Jun 2025
1014 points (98.6% liked)

Programmer Humor

23855 readers
2562 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[โ€“] Gsus4@mander.xyz 20 points 2 days ago* (last edited 2 days ago) (1 children)

Yeah, I actually had to try 1+"11" to check that it didn't give me 12, but thankfully ~~it commutes~~ it's consistent ๐Ÿ˜‡

[โ€“] palordrolap@fedia.io 19 points 2 days ago (1 children)

it commutes

Maybe the behaviour with regard to type conversion, but not for the operation itself.

"13"+12 and 12+"13" don't yield the same result.

[โ€“] raspberriesareyummy@lemmy.world 8 points 2 days ago (1 children)

Nor would I expect "1312" to equal "1213".. Still that operator with these operands should just throw an exception

[โ€“] palordrolap@fedia.io 4 points 2 days ago (2 children)

Given it's JavaScript, which was expressly designed to carry on regardless, I could see an argument for it returning NaN, (or silently doing what Perl does, like I mention in a different comment) but then there'd have to be an entirely different way of concatenating strings.

[โ€“] raspberriesareyummy@lemmy.world 5 points 2 days ago (1 children)

Why would you need an entirely different way of concatenating strings? "11" + 1 -> exception. "11" + to_string(1) = "111"

[โ€“] palordrolap@fedia.io 2 points 2 days ago (1 children)

You're right. I've got too much Perl on the brain and forgot my roots. There is a language that does what you're talking about with the '+' operator: BASIC

Good luck getting the same thing retrofitted into JavaScript though. I can imagine a large number of websites would break or develop mysterious problems if this (mis)behaviour was fixed.

I don't think there's a way to retrofit JS - but php versions are deprecated all the time. Why not do the same with client-side script versions? :)

expressly designed to carry on regardless

I'm surprised they didn't borrow On Error Resume Next from Visual Basic. Which was wrongly considered to be the worst thing in Visual Basic - when the real worst thing was On Error Resume. On Error Resume Next at least moved on to the next line of code when an error occurred; On Error Resume just executed the error-generating line again ... and again ... and again ... and again ...