JavaScriptは、C言語などとは異なり、変数を宣言するだけでは、思うように動作しない場合があります。
var str;
str = str + '123';
alert(str);
のようなコードを動作させると、ダイアログボックスには「undefined123」と表示されます。一見、きちんと変数を宣言しているように見えますし、ダイアログボックスの内容も変数str自体が存在しないかのような「undefined123」となっています。以下のように初期値を与えればundefinedは発生しません。
var str = '';
str = str + '123';
alert(str);
ダイアログボックスが「null123」なら、初期値の問題だと想像しやすいのですが、この場合は「undefined」となっています。