【发布时间】:2011-12-06 01:08:50
【问题描述】:
展览 A:
var pt = [0,0,0,0,0,0];
console.log(pt[0], pt);
有时日志会输出0 [Infinity, Infinity, Infinity, Infinity, Infinity, Infinity],但仅当您为pt 执行六个零数组时。如果你做了五个零,那么你会得到一个由五个零组成的数组预期。最大的紧握是 pt[0] 有时如何同时成为 0 和 Infinity 混乱
重现问题的步骤:
- 下载Flanvas的
Development分支 - 确保将文件夹放在 web-server 目录中(否则会遇到跨域问题)
- 运行页面
examples/loader-svg.js - 查看控制台以了解我所指的混淆。
*备注
- 有问题的控制台日志(附件 A)位于第 2958 行的
src/flanvas.js - 该框架最近经历了“shload”更新,您会注意到并非一切正常 - 我知道。
- 我正在测试
Mac OSX 10.6.8和Chrome 15.0.874.121
如果我的说明有任何问题,请回复,我会尽快处理。谢谢。
** 澄清问题**
如果我运行console.log(pt[0], pt);,那么我希望数组pt 和pt[0] 中的第一个值相同。我的Exhibit A 不是这种情况。为什么不呢?
【问题讨论】:
-
@harto 如果我运行
console.log(pt[0], pt);,那么我希望数组pt和pt[0]中的第一个值相同。在这种情况下,它不是。我也会将此添加到编辑中。 -
这不是框架开发者的问题吗?
-
@Jackson - 你是说 Exhibit A 本身就足以证明问题吗?或者它只是框架代码中的一个问题(大概在console.log之前和之后对数组做了其他事情)?
-
@Jackson,pt[0] 将变为 0,pt 将变为对数组的引用。如果console.log在将数组转成字符串之前等待一段时间,0仍然是0,但数组可能已经改变了。
-
@nnnnnn Exhibit A 本身就很好。相对于它的块它不好,因此我很困惑。 @@James Clark 这很可能,但似乎不太可能。 @@@RightSaidFred 先生,您在玩游戏。我覆盖了同一个变量,因为我假设这将“重置”变量,并且我没有遇到“旧内容”的危险。然而,看起来“旧内容”实际上是正在显示的内容,因为 JS 尊重那些对我来说很奇怪或新奇的规则(可能是后者)。
标签: javascript