Javascript类型数组是否初始化为0?

时间:2012-08-17 17:12:02

标签: javascript webgl

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

2 个答案:

答案 0 :(得分:5)

根据JavaScript's Typed Array Specification, contents are initialized to 0。所以你应该能够依赖这种行为。

请注意键入的数组don't have very good cross browser support yet。 Chrome,Safari,Firefox和Opera都支持它,但Internet Explorer仅在IE10中引入了支持。

我还应该提一下,与普通数组相比,类型数组目前是extremely slow in Safari。因此,除非您没有针对Safari,否则最好避免使用类型化数组。使用普通数组,所有数组值都初始化为undefined

答案 1 :(得分:-4)

默认情况下,如果使用大小构造数组,则数组包含null。自null == 0起,您可能会认为它填充了0或其他任何虚假价值。但是,如果您尝试调用数字上的方法(例如.toString),则会遇到问题。或者,如果您通过需要数字形式的函数(例如parseInt

)运行它

理想情况下,你应该总是初始化一个数组,以便你确切地知道它包含什么,虽然我个人从来没有听说过JS中的类型数组......