2012-08-17 10 views
5

私は型付き配列、特にすべてFloat32Arrayを必要とします。手動でクリアする必要があると私は考えていましたが、私が宣言したとき、それはすでにゼロになっていたことに気付きました。仕様に明記されているものですか?この行動に頼ることはできますか?Javascript型の配列は0に初期化されていますか?

+0

「ゼロ化」とはどういう意味ですか? – KooiInc

+0

あなたのコードを表示できますか? javascriptには型付き配列はありません。配列には、あなたが置くことを決めるものが含まれます。例えば'[1、" hello "、{a:3}]'はjavascriptで有効な配列です。 – jackwanders

+0

これは私がGoogle Chrome用のコンソールで入手したものです。 'a = new Float32Array(10)'は '[0、0、0、0、0、0、0、0、0、0]'を返します。 私はWebGLで作業しているので、型付き配列を使用しています。それらは標準の配列とは異なり、主にWebGLのために、それは少し難解です。私はそれを指定するべきだった。 – SharkCop

答えて

5

を配列を初期化する必要があります。だからあなたはこの振る舞いに頼ることができるはずです。

型付き配列don't have very good cross browser support yetに注意してください。 Chrome、Safari、Firefox、およびOperaはそれをサポートしていますが、Internet ExplorerはIE10でのサポートしか導入していません。

また、型付き配列は現在通常の配列と比較してextremely slow in Safariです。このため、Safariをターゲットにしない限り、型付き配列を避ける方がよいでしょう。通常の配列を使用すると、すべての配列値はundefinedとして初期化されます。

-4

サイズを指定して配列を作成すると、デフォルトで配列にはnullが含まれます。 null == 0以降、0などの偽の値で埋められている可能性があります。しかし、数字のメソッドを呼び出そうとすると、問題に遭遇します(.toStringなど)。または、parseIntなどの数値形式を必要とする関数を使用して実行する場合。

あなたはそれが含まれている内容を正確に把握するように、個人的に私はJSで入力した配列のことを聞いたことがありませんが、理想的には、あなたは常にJavaScript's Typed Array Specification, contents are initialized to 0によると...、

+0

*サイズが*:nopeの配列を作成すると、デフォルトで配列にはnullが含まれます。あなたのコンソールで試してみてください: 'var a = []; a.length = 5; console.log(a [3]) 'または 'var a = new Array(5); console.log(a [3]) ' – KooiInc

+0

私が誤解していない限り、それらはどちらも私に'ヌル 'でいっぱいの配列を与えますか? –

+0

おそらくブラウザの違いがありますか? Chromeコンソールの 'console.log(a)'は '[undefined×5]'を表示します – KooiInc

関連する問題