不思議の国のJavaScript2

《 初回公開:だいぶ昔で覚えていない , 最終更新:未 》


不思議の国のJavaScript-オブジェクト指向に関するtips」では、 オブジェクト指向に関する奇妙なふるまいについて述べたが、 その他にも不審な挙動を見かける。

undefinedとnull

undefinedは文字どおり未定義の値であり,nullは値が無い事を示す。

undefinedとnullとは一見、同じようだが微妙に異なる。

リスト1

「undefinedとnullの違い」のサンプルページ

値の論理値として評価

undefinedもnullも、論理値として評価される時はfalseとして評価される。

ちなみに、数値の0はfalse,0以外はtrue、 文字列の場合は空文字はfalse,空文字は以外はtrueとなる。

リスト2

「値の論理値として評価」のサンプルページ

 

undefinedとnullを==演算子で比較すると、trueと判断される。

を厳密に区別したい場合は、===演算子で比較する。

この様子を以下に示す。

リスト3

「undefinedとnullの比較」のサンプルページ

変数の宣言とスコープ

変数の宣言には、varキーワードを使う。

リスト4

 

varキーワードで変数を宣言せずに、変数にいきなり値を代入した場合でも、変数宣言されたものとみなされる。

つまり、代入時のvarキーワードは省略できる。

リスト5

 

ただし、varキーワードを省略した場合は、グルーバル変数なる。

グルーバル変数は、windowオブジェクトのプロパティでもある。

リスト6

「varキーワードを省略」のサンプルページ

 

宣言もされず,代入もされていない変数を、いきなり使う事はできない。

リスト7

「宣言もされず代入もされていない変数」のサンプルページ

 

変数宣言は宣言前のコンテキスト内の変数に対しても有効。(宣言前に変数を使用してもエラーにならない。)

リスト7のプログラムに対して、次のように使用後に変数宣言を追加すると、エラーが発生しなくなる。

リスト8

「宣言前の変数を使用」のサンプルページ

 

同じ変数を複数回宣言しても、エラーとはならない。

リスト9

「同じ変数を複数回宣言」のサンプルページ

 

関数内でvar宣言した変数は、ローカル変数となる。

リスト10

「ローカル変数」のサンプルページ

 

変数には、ローカル変数,グローバル変数の他にも、いろいろある。

変数のいろいろ」を参照。

 

JavaScriptの参考書 /  Ajaxの参考書 /  HTMLの参考書 /  CSSの参考書

 

ページのトップへ戻る