+演算子の挙動について。
オペランドの値が両方とも同じ型
文字列同士なら連結、数値同士なら加算演算する。
オペランドの値の型が違う
- 文字列の連結が優先的に行われる
- 両方のオペランドが文字列でないときは、加算演算を行う
- DateオブジェクトはtoString、その他のオブジェクトはvalueOfで型変換を行う。しかし、多くのオブジェクトは意味のあるvalueOfメソッドを持たないのでtoStringメソッドを使って型変換を行う
- オブジェクトから基本型への型変換のあと、オペランドの一方が文字列の場合、もう一方のオペランドも文字列に変換し連結を行う
- それ以外は両方のオペランドを数値に変換し加算処理を行う
出典
ここのP71です。