等価演算子¶
書式¶
式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と評価 */