JavaScriptで値が入っているハズなのに「undefined」が出力される、IE8での現象

JavaScriptで値が入っているハズなのに「undefined」が出力される。
備忘録です。

var a;
a = 'hoge';
alert(a); // hoge

var b;
b += 'hoge';
alert(b); // undefinedhoge

IE8では、この文字列の結合で「undefined」が残ってしまうということなのですね。
IE10、FireFoxChromeでは問題なし。

「undefined」が文字列に入らないようにするために、

var c = '';
c += 'hoge';
alert(c); // hoge

と明示的に宣言してやれば問題なし。


解決してみると当たり前すぎますね。何で気がつかなかったんだろう。。。