未定義型(undefined)とは、未定義であることを示すデータ型。
値を代入していない変数は、未定義型(undefined)となる。値を返さない関数も、undefinedを返す。
サンプル
変数が値を持っているか調べるサンプル(1)
ソースコード
<script type="text/javascript">
var sampleA;
if ( sampleA === undefined ) {
document . write( "変数「sampleA」は、未定義である。<br />" );
document . write( "変数「sampleA」の値は、" + sampleA + "<br />" );
document . write( "変数「sampleA」のデータ型は、「" + typeof( sampleA ) + "」<br />" );
}
</script>
var sampleA;
if ( sampleA === undefined ) {
document . write( "変数「sampleA」は、未定義である。<br />" );
document . write( "変数「sampleA」の値は、" + sampleA + "<br />" );
document . write( "変数「sampleA」のデータ型は、「" + typeof( sampleA ) + "」<br />" );
}
</script>
変数が値を持っているか調べるサンプル(2)
ソースコード
<script type="text/javascript">
var sampleB;
if ( typeof( sampleB ) === 'undefined' ) {
document . write( "変数「sampleB」は、未定義である。<br />" );
document . write( "変数「sampleB」の値は、「" + sampleB + "」。<br />" );
document . write( "変数「sampleB」のデータ型は、「" + typeof( sampleB ) + "」。<br />" );
}
</script>
var sampleB;
if ( typeof( sampleB ) === 'undefined' ) {
document . write( "変数「sampleB」は、未定義である。<br />" );
document . write( "変数「sampleB」の値は、「" + sampleB + "」。<br />" );
document . write( "変数「sampleB」のデータ型は、「" + typeof( sampleB ) + "」。<br />" );
}
</script>
「undefined」と「null」の比較サンプル
解説
==
で比較すると、undefined
もnull
も、未定義undefined
であると判定される。
undefined
だけを、未定義undefined
であると判定されるには、===
を使い、型も含めて比較する必要がある。
ソースコード
<script type="text/javascript">
var sampleC;
var sampleD = null;
document . write( "【「==」での比較結果】<br />" );
if ( sampleC == undefined ) {
document . write( "変数「sampleC」は、未定義である。<br />" );
document . write( "変数「sampleC」の値は、「" + sampleC + "」。<br />" );
document . write( "変数「sampleC」のデータ型は、「" + typeof( sampleC ) + "」。<br />" );
}
if ( sampleD == undefined ) {
document . write( "変数「sampleD」は、未定義である。<br />" );
document . write( "変数「sampleD」の値は、「" + sampleD + "」。<br />" );
document . write( "変数「sampleD」のデータ型は、「" + typeof( sampleD ) + "」。<br />" );
}
document . write( "【「===」での比較結果】<br />" );
if ( sampleC === undefined ) {
document . write( "変数「sampleC」は、未定義である。<br />" );
document . write( "変数「sampleC」の値は、「" + sampleC + "」。<br />" );
document . write( "変数「sampleC」のデータ型は、「" + typeof( sampleC ) + "」。<br />" );
}
if ( sampleD === undefined ) {
document . write( "変数「sampleD」は、未定義である。<br />" );
document . write( "変数「sampleD」の値は、「" + sampleD + "」。<br />" );
document . write( "変数「sampleD」のデータ型は、「" + typeof( sampleD ) + "」。<br />" );
}
</script>
var sampleC;
var sampleD = null;
document . write( "【「==」での比較結果】<br />" );
if ( sampleC == undefined ) {
document . write( "変数「sampleC」は、未定義である。<br />" );
document . write( "変数「sampleC」の値は、「" + sampleC + "」。<br />" );
document . write( "変数「sampleC」のデータ型は、「" + typeof( sampleC ) + "」。<br />" );
}
if ( sampleD == undefined ) {
document . write( "変数「sampleD」は、未定義である。<br />" );
document . write( "変数「sampleD」の値は、「" + sampleD + "」。<br />" );
document . write( "変数「sampleD」のデータ型は、「" + typeof( sampleD ) + "」。<br />" );
}
document . write( "【「===」での比較結果】<br />" );
if ( sampleC === undefined ) {
document . write( "変数「sampleC」は、未定義である。<br />" );
document . write( "変数「sampleC」の値は、「" + sampleC + "」。<br />" );
document . write( "変数「sampleC」のデータ型は、「" + typeof( sampleC ) + "」。<br />" );
}
if ( sampleD === undefined ) {
document . write( "変数「sampleD」は、未定義である。<br />" );
document . write( "変数「sampleD」の値は、「" + sampleD + "」。<br />" );
document . write( "変数「sampleD」のデータ型は、「" + typeof( sampleD ) + "」。<br />" );
}
</script>