我需要一个类型数组,特别是一个全零的Float32Array。我想我必须手动清除它,但我注意到当我声明它时,它已经被清零了。这是规范中指定的内容吗?我可以依赖这个行为吗?
发布于 2012-08-18 01:47:37
根据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。
发布于 2012-08-18 01:15:06
默认情况下,如果使用大小构造数组,则数组包含null。由于null == 0,您可能会认为它填充了0或其他任何错误的值。但是,如果您尝试调用numbers上的方法,比如.toString,就会遇到问题。或者,如果您通过一个需要数字形式的函数来运行它,比如parseInt。
理想情况下,您应该始终初始化一个数组,以便确切地知道它包含什么,尽管我个人从未听说过JS中的类型化数组……
https://stackoverflow.com/questions/12010151
复制相似问题