変数

javascriptでは、変数に「型」という概念がありません。
これはどういう事かというと、

var str = 1 ;
alert( typeof(str) ) ;
str = 1 + "hoge" ;
alert( typeof(str) ) ;

上のコードを実行すると最初はnumberが表示され、次にstringという文字が表示されます。
ちなみにtypeofとは、javascriptで型を調べる演算子です。

つまり、javascriptでは、型は宣言された時の値を暗黙的に、解釈するのです。
また、"hoge"という文字列を+した時は、"1hoge"という文字列と解釈されるのです。
つまり、ある数字を明示的に数字!!と宣言しなくても良いのです。
その特徴を生かすと、下の様に数字を簡単に文字列に変更する事もできます。

var str = 1 ;
str = 1 + "" ;
alert( typeof(str) ) ;

上の様に文字列を + で結合する事によって、簡単に数字を文字列に変更する事ができます。まぁ他にもStringオブジェクトを用いて明示的にString型に変換する方法もありますが、こんな方法があるなんてちょっと面白い。
ただ、これは+だから成せる技という事に注意しなくてはいけない。ーだとだめなのである。
なぜかというと、+、ーは数字の加算減算に使われる。+は文字列の結合演算子としても使われているから成せる技なのである。ーを用いて、文字列を減らすなどjavascript,いや、他のプログラミング言語でも聞いた事がないですね。なので、+で文字列を足した時に、+は文字列の連結処理として、コンパイラにとらわれるのですね。
これは、ほかの言語では、int()など、明示的に型を変更する必要があるので、便利と言えば便利かもしれないですね。


ただ、この様に短いプログラムでは大丈夫だが、ながいプログラムを書く場合、変数名をちゃんと分かるような名前にしないと、後で混乱を招きそうなので注意しないとな。。。
javascriptでプログラムを書くときは、ちゃんと一環した記法をしないとだめですな。後で混乱を招きそう。