6

我需要一个全为零的类型化数组,特别是 Float32Array。我在想我必须手动清除它,但我注意到当我声明它时,它已经被清零了。这是规范中指定的内容吗?我可以依靠这种行为吗?

4

2 回答 2

6

根据JavaScript 的 Typed Array Specification,内容被初始化为 0。所以你应该能够依赖这种行为。

请注意,类型化数组还没有很好的跨浏览器支持。Chrome、Safari、Firefox 和 Opera 都支持它,但 Internet Explorer 只在 IE10 中引入了支持。

我还应该提到,与普通数组相比,类型化数组目前在 Safari 中非常慢。因此,除非您的目标不是 Safari,否则您最好避免使用类型化数组。使用普通数组,所有数组值都初始化为undefined.

于 2012-08-17T17:47:37.357 回答
-4

默认情况下null,如果您使用大小构造它们,则数组包含。因为null == 0您可能认为它充满了0,或任何其他虚假值。但是,如果您尝试在数字上调用方法,例如.toString. 或者,如果您通过一个需要数字形式的函数运行它,例如parseInt.

理想情况下,您应该始终初始化一个数组,以便确切地知道它包含什么,尽管我个人从未听说过 JS 中的类型化数组......

于 2012-08-17T17:15:06.057 回答