This is too stupid so I had to check.
Fuck me.
pro tip:
"ba" + 0/0 + "a"
This has got to be baNaNa
If you mix types like that, it’s your own fault
BS. A language shouldn’t have operators that allow non sensical operations like string concatenation when one operand is not a string.
It’s not nonsensical, implicit type coercion is a feature of JavaScript, it’s perfectly logical and predictable.
JavaScript is a filthy beast, it’s not the right tool for every job, but it’s not nonsensical.
When you follow a string with a
+
, it concatenates it with the next value (converted to string if needed). This makes sense, and it’s a very standard convention in most languages.Applying arithmetic to a string would be nonsensical, which they don’t do.
You are entitled to your opinion. implicit conversion to string is not a feature in most languages for good reasons.
Sure. And you’re entitled to yours. But words have meaning and this isn’t MY OPINION, it’s objective reality. It follows strict rules for predictable output, it is not nonsensical.
You’re entitled to think it’s nonsense, and you’d be wrong. You don’t have to like implicit type coercion, but it’s popular and in many languages for good reason…
Language Implicit Coercion Example JavaScript '5' - 1 → 4
PHP '5' + 1 → 6
Perl '5' + 1 → 6
Bash $(( '5' + 1 )) → 6
Lua "5" + 1 → 6
R "5" + 1 → 6
MATLAB '5' + 1 → 54
(ASCII math)SQL (MySQL) '5' + 1 → 6
Visual Basic '5' + 1 → 6
TypeScript '5' - 1 → 4
Tcl "5" + 1 → 6
Awk '5' + 1 → 6
PowerShell '5' + 1 → 6
ColdFusion '5' + 1 → 6
VBScript '5' + 1 → 6
ActionScript '5' - 1 → 4
Objective-J '5' - 1 → 4
Excel Formula "5" + 1 → 6
PostScript (5) 1 add → 6
I think JavaScript is filthy, I’m at home with C#, but I understand and don’t fear ITC.
C# is filthy. But it explains where you got your warped idea of righteousness.
Imagine doing math with strings and then blaming the language not yourself