In most languages…
You can only perform additional subtraction on number types, taking it further. Restricitng only the same type such as an integer or float to be operated on together.
A laizzes faire approach to arithmetic operations
we don’t care about adding strings/characters to an int or vice versa we can any two values we want to each other
do you want to add the value 10 to a string, you can. what about a TRUE + NULL? Yep no problem
[1,2,3] + 8 -> ‘1,2,38’
'1' + 1 = '2'
Not only that it’s incredibly inconsistent, for example if I add a number to a string or vice versa, I get a string back. But if I subtract a number with a string, I get back a Number. Worse yet if I add a minus number to a string, I get back a number again.
While this might feel like madness, there is actually some precedence ordering to this type coercion which the documentation does define.