旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

[JavaScript] 引数のArrayネストが自動展開された

2013年8月11日

知らなくて、ちょっとハマった。
以下、Chrome と Node.js 0.11 で確認。

array.slice:

var arr = [1, 2, 3, 4, 5];
console.log(arr.slice([[[[[3]]]]]));  // -> [4, 5]

array.join:

var arr = [1, 2, 3];
console.log(arr.join([[[[["/"]]]]]));  // -> "1/2/3"

・・・とか、他にもあるかも。

concat や apply など、勝手に展開すると困るのはしないみたいです。

番外: [[[[["str"]]]]]

console.log([[[[["str"]]]]] + "");  // -> "str"

これは多分動作に期待しちゃダメだと思われます。

追記: というか、番外の自動キャストが引数に渡ってるだけだった

[[[[[3]]]]] -> "3" -> 3

超すみません、お騒がせしました。