0

この議論この記事を読んだ後、私はまだこの質問があります。次のスニペットがあるとしましょう。

var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";

document.write(arr.join(","));

document.write()行をに置き換えるとdocument.write(arr);、それらは同等ですか?置換ステートメントは、区切り文字としてコンマを使用して配列要素を自動的に結合しますか?

前もって感謝します!

4

2 に答える 2

5

「でも理由が分からなかった」

これは、すべてがtoStringそのプロトタイプの一部として機能を持っているためです。書き出すと、この関数が呼び出されて、それが何であれ、文字列表現が取得されます。配列の場合、デフォルトの処理は と同じjoinです。

Array.prototype.toString.apply([1,2,3]) == Array.prototype.join.apply([1,2,3])
> true
于 2012-04-25T20:38:07.407 に答える
1

配列を document.write() に渡すと、デフォルトでカンマで区切られます。

http://jsfiddle.net/XnW7V/

var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";

document.write(arr); //outputs Zero,One,Two
于 2012-04-25T20:35:00.197 に答える