メモを揉め

お勉強の覚書。

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"

 

たのしいね。