in演算子

in演算子とは、右のオペランド(演算子引数)に指定したオブジェクトに、左のオペランド(演算子引数)に指定したプロパティが存在するかどうかを調べる演算子。

指定したプロパティが、指定したオブジェクトに存在する場合、「真(true)」を返す。

指定したプロパティが、指定したオブジェクトに存在しなかった場合、「偽(false)」を返す。

undefinedを設定したプロパティについては、「真(true)」を返す。

delete演算子で削除したプロパティについては、「偽(false)」を返す。

構文

プロパティ名 in オブジェクト名

「オブジェクト名」のオブジェクトに、「プロパティ名」のプロパティが存在するかどうかを調べる。

「プロパティ名」のプロパティが、「オブジェクト名」のオブジェクトに存在する場合、「真(true)」を返す。

「プロパティ名」のプロパティが、「オブジェクト名」のオブジェクトに存在しなかった場合、「偽(false)」を返す。

サンプル1

<script type="text/javascript">
var objA = new Object();
objA . propA = "サンプルA";
if( "propA" in objA ){
    document . write( objA . propA + "<br />" );
}else{
    document . write( "propAはありません。<br />" );
}
if( "propB" in objA ){
    document . write( objA . propB + "<br />" );
}else{
    document . write( "propBはありません。<br />" );
}
</script>

↓↓↓出力結果↓↓↓

サンプル2

undefinedを設定したプロパティについては、「真(true)」を返す。

<script type="text/javascript">
var objB = new Object();
objB . propA = "サンプルA";
if( "propA" in objB ){
    document . write( objB . propA + "<br />" );
}else{
    document . write( "propAはありません。<br />" );
}
objB . propA = undefined;
if( "propA" in objB ){
    document . write( objB . propA + "<br />" );
}else{
    document . write( "propAはありません。<br />" );
}
</script>

↓↓↓出力結果↓↓↓

サンプル3

delete演算子で削除したプロパティについては、「偽(false)」を返す。

<script type="text/javascript">
var objC = new Object();
objC . propA = "サンプルA";
if( "propA" in objC ){
    document . write( objC . propA + "<br />" );
}else{
    document . write( "propAはありません。<br />" );
}
delete objC . propA;
if( "propA" in objC ){
    document . write( objC . propA + "<br />" );
}else{
    document . write( "propAはありません。<br />" );
}
</script>

↓↓↓出力結果↓↓↓

スポンサード リンク

カテゴリー: JavaScript, リファレンス, 演算子 タグ: パーマリンク