by shigemk2

当面は技術的なことしか書かない

+演算子の話

f:id:shigemk2:20141228232507p:plain

+演算子の挙動について。

オペランドの値が両方とも同じ型

文字列同士なら連結、数値同士なら加算演算する。

オペランドの値の型が違う

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

出典

ここのP71です。