未定義値(undefined)

広告

変数を利用する場合は変数を宣言してから値を代入します。では変数を宣言だけして値を一度も代入していない場合、変数にはどのような値が代入されているでしょうか。変数は値が一度も代入されていない場合、デフォルトで未定義値という特殊な値を保持しています。

その為、値が代入されていない変数を利用してもエラーとはなりません。次の例を見てください。

var str;
alert(str);

変数「name」には一度も値が代入されていません。その為、ダイアログで変数「name」を表示しようとすると、変数「name」がデフォルトで保持している未定義値が表示されることになります。このように初期化がされていない変数の値を参照してもエラーとはなりません(宣言していない変数の値を参照しようとすると実行時エラーとなります)。

グローバル変数「undefined」

JavaScriptでは「undefined」という名前のグローバル変数が定義されています(グローバル変数については別のページで解説します)。そしてこのグローバル変数「undefined」には初期値として未定義値が代入されています。

未定義値に対する条件処理を行う場合などは、このグローバル変数「undefined」を利用することができます。具体的な利用方法はまた別のページで解説します。

サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script6_1.js">
</script>

</body>
</html>
var str;
alert(str);

上記を実際にブラウザ見てみると次のように表示されます。

p6-1

ダイアログが開き「undefined」と表示されています。注意して頂きたいのは未定義値が「undefined」と言う文字列ということではないということです。未定義値は文字列が使われる場合で使用すると「undefined」として表示されます。

( Written by Tatsuo Ikura )