JavaScriptで「var null」はエラーになるのに「var undefined」はエラーにならない理由
JavaScriptで「var null」と記述するとエラーがスローされます。これは「null」が言語仕様において予約語(予約識別子)として定義されているためです。予約語は変数名や関数名などの識別子として使用することが許されていません。
識別子として使用できないリテラル
ECMAScriptの仕様では、以下のリテラルを識別子(変数名など)として使用することはできません。
null true false
undefinedとは
「undefined」は、値が定義されていない状態を表すグローバルオブジェクトのプロパティです。未知の値を示すものであり、予約語ではありません。そのため、変数名として宣言してもエラーにはなりません。undefinedの型は「undefined型」です。
var undefined = 10; // エラーにならない(ただし非推奨) console.log(undefined); // 環境によっては 10 が出力される
nullとは
一方、「null」は予約語として知られており、開発者が意図的に「値が存在しない」ことを示すために使用する特殊な値です。ただし、nullはfalseと同じ意味ではない点に注意が必要です。変数を宣言してnullを代入すると、その変数からはnullが出力されます。
var x = null; console.log(x); // null と出力される
まとめ
「var null」がエラーになるのは、nullが予約語だからです。同じ理由でtrueやfalseも識別子として使えません。一方、undefinedは予約語ではなく単なるプロパティであるため、宣言してもエラーが発生しません。ただし、混乱を避けるためにも、これらの名前を変数名として使用することは避けるべきです。
-
JavaScriptのundefined(未定義)とは?変数の判定方法をサンプルコードで解説
JavaScriptのundefined(未定義)は、変数がまだ宣言されていない、あるいは宣言されていても値が代入されていないことを示す特殊な値です。変数の状態を確認したい場面で頻繁に登場するため、初心者の方にとって押さえておきたい重要な概念の一つです。 undefinedの基本的な役割 undefinedは、次のような状況で返される値です。 変数を宣言したものの、まだ値を代入していない場合 存在しないオブジェクトのプロパティにアクセスした場合 関数の引数が渡されなかった場合 以下は、JavaScriptのundefinedを使って、変数が定義済みかどうかを判定する実装例です。 サンプルコ
-
Internet Explorer 10で「_doPostBack が定義されていません」エラーが発生する原因と解決方法
近年、ブラウザの新バージョンのリリースは一種のトレンドのようになっています。かつてはブラウザのアップデートは年2回程度行われるのが一般的でしたが、現在では更新頻度が非常に高くなっています。この頻繁なアップデートは開発者に大きな負担を強いるため、更新内容が必ずしも完璧であるとは限りません。その最近の例の一つが、「_doPostBack が定義されていません」という JavaScript エラーを引き起こすバグです。 JavaScript エラー「_doPostBack が定義されていません」の原因は? 基本的に、このエラーは Internet Explorer 10 の定義ファイルに存在するバ