変数の宣言をしていない物も未定義と言えますが、undefinedは未定義と言う情報を持つ変数と言う事になります。プログラム中で変数に代入を行う事で暗黙の宣言(varを使わないで済ます)事もできます。つける事で、1行に複数記述する事も可能です。スクリプト内のどこからでも参照(読み書き)できます。グローバル変数と言います。}の中に処理群を書き込みます。ここでは処理と言うよりは、宣言だけをしています(緑色の部分)。関数は、呼出される(処理を渡される)事により、その中に記述されているステートメントを実行します。この関数の中でvarによる宣言を使うと特別な意味になります。3つの方法の変数への宣言・代入を見比べてみて下さい。aaa関数外で宣言されていますので、グローバル変数です。bbb関数内ですがvarを使っていません。この場合グローバル変数となります。ccc関数内でvarを使っています。この場合ローカル変数になります。この関数の中でのみ有効な、一時的な変数になります。この関数以外の場所からこの変数を参照する事ができません。参照しようとしてもエラーが出ます。ローカル変数にする必要があるか?と言う問題ですが、それは今後のあなた次第です。全ての変数をグローバル変数にしてしまえば、余計な気遣いも要りませんけど、関数内だけで一時的に使い捨てにしたい場合などには有効です。全ての変数をグローバルにしてしまうと、グローバル領域が変数名であふれ返ってしまいます。その場合の対処方法もありますが、それはまた別で。全てがグローバル変数になる。varステートメントは関数内で使うとローカル変数宣言になる。した注意:まだこの時点で説明していませんが、注意しなければならない変数名があります。言うプロパティの書き換えを行ってしまう事になります。ウィンドウオブジェクトのプロパティ名と一致してしまうのです。window.nameに値を入れている事になるだけです。フレームなどでのtarget属性として指定されるフレームウィンドウの名前の事です。使うべきではないです。変数名として扱う場合等は要注意です。"artemis";の様に使うのは問題ないです。ついでの話(初心者向けじゃないかも?)グローバルで宣言された変数は、すべてwindowオブジェクトの子(プロパティ)である。書く事が可能です(普段は不要です)。グローバル領域ではthis.変数名でもOKです。defined)を利用する為にエラーが出ます。変数;のように先に宣言しておく必要があります。javascriptでは既に存在するオブジェクトのプロパティがあるかないか?を調べる時は、無ければエラーではなくundefinedを返してくれます。}のような書き方です。}の様に直接変数を調べずに、存在する親オブジェクトから記述する事で、存在するself(自windowオブジェクトの事)のプロパティとして調べる事ができます。グローバル変数に関してはこの方法で事前のグローバル変数宣言を先に行っておく手間(記述)を省けるケースもあります。製作時はエラーがでた方が良いケースも有ります。定義していないのか?それとも未定義の変数なのか?などの違いも把握しながらコーディングする必要があるケースも有ります。従って、self.変数で済ませてしまうことが『最良』ではありません。)を使って代入します。右側の値を、左側へ・・・・と言う解釈がされます。逆にしてはいけません。)は、数式で使うイコールとは違います。ダブルまたは、シングルクォーテーションで囲みます。逆に言えば、これで囲んだ物は文字列であるとも言えます。文字列がどちらかのクォーテーションを含んでいる場合は、残りの方を使って書きます。このサイトの名前は"artemis"ですとなります。数値ではなく数字と言う文字列として扱われます。変数の型でもう少し詳しく説明します。文字や数値を代入演算子で代入しています。実際のプログラムでは、これ以外に状況によって変化する値を代入したりします。その計算の結果を代入します。oldpointと言う変数に代入しています。次に自分自身(point)の持っている値に、0を足した物を、新たな自分(point)の値として代入します。それまで持っていた値は消えてなくなります。usrinputと言う変数に代入しています。使われる目的の1つです。0;複数の変数(単純)に同じ値が入る場合等には、この様に並べて書いてしまっても構いません。初期が0でその初期に戻すようなリセット処理をする時などもこのように指定すると便利です。ダブルクォーテーションなどをつけないでください。言う文字列を入れる事になってしまいます。書くと、その文字列を入れると言う事になってしまいます。変数の型top変数にはデータ型と言う物があります。プログラミングをしながら意識できるようになって下さい。これと型が同じです、この表示(型)がある事によって取り扱い方が違ってきます。あなたがプログラムを書く時に間違った取り扱いをしない様にして下さい。変数はそのまま処理対象になるので、オブジェクトでもあります。従って、変数の型と言う呼び方とオブジェクトの型が一致する事になるようです。その変数の値が文字列である場合を指します。文字列が代入されれば文字列型になると言う事にもなります。文字列はダブルまたはシングルクォーテーションをつけて取り扱います。"artemis";この様に文字列が代入された変数を文字列型(string)と言います。この変数は処理される時には文字列として扱われます。コアオブジェクトの文字列(string)オブジェクトと言う事になるわけです。あなたは、そういう取り扱いをする事を考えれば良い事になります。undefined(未定義)と言う状態になります。後で利用する時にこの変数が文字列型として扱われるようにすると便利な場合があります。undefinedではなく空白になります。見てみますか?javascriptではHTMLエレメントから取るデータは文字列型が基本になります。このフォームの値を受け取った時も数字であっても初期値は文字列型として扱われます。言う文字列となります。加減乗除などの計算式に使える数値である場合を指します。宣言時等に数値を代入すればそのまま数値型になります。この様に数値の代入された変数を数値型といいます。言う事になり、数値(number)オブジェクトに用意されているメソッド・プロパティや算術演算子が有効になります。数値型の変数は特別な値を持つ事があります。以上)NaNとinfinityです。Numberの略で、『数値ではない』という意味です。数値として解釈できなってしまう場合等この値が入ります。数値に文字列を掛けた場合などです。javascriptで処理できる桁数を超えてしまった場合この値が入ります。むき出しのまま扱います。文字として代入しています。30(さん・ゼロ)と言う文字列になります。文字列になると四則計算等の数値として通常の取り扱いはできなくなります。次のボタンは型のタイプをアラート表示します。言う評価によって処理を分ける事がよくあります。評価の結果を真か偽で変えるような式を作る場合もあります。値として持たせた変数をブール型変数と言います。2つに限定されています。』という文字になってしまいます。ブールオブジェクトに用意されているメソッド・プロパティなどが使える事になります。代入するようにします。値によって処理を分ける、と言う方法を取ったりします。これはソース上に書き込む手動的な手法です。次の場合は処理(式の評価)によって、自動的に変数の値が決まる場合です。indexof('指定文字')メソッド、指定文字を含んでる?・・・・・・。大文字小文字も重要です。書くとエラーになります。言う変数に代入されます。$naviはブール型変数です。ついでにステートメントや、今後の説明の中でも出てきますが、変数の型ではありませんが。数値が入っているとします。