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