undefinedを[ ]で囲んで+で連結すると空文字っぽくなる
[undefined] + [undefined] // ""
1 + [undefined] // "1"
その他にも、
1 + [1]; // "11"
1 + ["1"]; // "11"
1 + [true]; // "1true"
1 + [0, 1, 2]; // "10,1,2"
1 + [undefined, false, NaN, null, 0]; // "1,false,NaN,,0"
数値、真偽値、NaNはそのまま文字列になるけど、undefinedとnullは空文字になるんだね、それとコロンも出力されるんだね、へぇ〜
変数の場合、
var aaa = 1;
1 + [aaa]; // "11"
1 + [aaa.aaa]; // "1"
1 + [bbb]; // エラー
宣言してない未定義の変数名はエラーになるんだね、そりゃそうかもね。
あとはこんなのも大丈夫なんだって、
1 + [[0, 1, 2][3]]; // "1"
1 + ["012"[3]]; // "1"
たのしいね。