等価演算子

書式

式1 ==  式2
式1 !=  式2
式1 ==& 式2
式1 !=& 式2

解説

等価演算子は優先順位が低いことを除けば関係演算子と同等です。比較の条件もこれに従います。


==は式1と式2が等しい場合trueとなります

!=は式1と式2が等しくない場合trueとなります

==&は式1と式2が同じオブジェクトのインスタンスを指す場合trueとなります

!=&は式1と式2が同じオブジェクトのインスタンスを指さない場合trueとなります


左辺と右辺の型が異なる場合、以下のように型変換が行われ比較されます。


左辺の型

右辺の型

説明

String

Number

左辺のStringをNumberに変換します

String

Date

左辺のStringをDateに変換します

Number

Date

右辺のDateをNumberに変換します

null

String

常にfalse

null

Number

常にfalse

null

Date

常にfalse

null

null

常にtrue

オブジェクト

null以外

左辺のオブジェクトのデフォルトプロパティを使い上記変換を行います

オブジェクト

null

左辺のオブジェクト実体が存在しない場合、nullと等しくなり、実体が存在する場合は、nullとは等しくありません。

左辺と右辺の型が上表と逆の場合も同様に変換されます。


等価演算子の例

URIAGE.KINGAKU = 1000;
URIAGE.KINGAKU == 1000; /* true と評価 */
URIAGE.KINGAKU ==& //.SALES.URIAGE.KINGAKU; /* trueと評価 */
"" == null; /* falseと評価 */
"" != null; /* trueと評価 */
String str1 = "";
str1 == null; /* falseと評価 */
str1 != null; /* trueと評価 */
var v1;
v1 == null; /* trueと評価 */
v1 = str1;
v1 == null; /* falseと評価 */
v1 = str2;  /* 存在しないオブジェクトのリファレンス */
v1 == null; /* falseと評価 */