现在是20:30,我正在寻找一个由未初始化的成员变量引起的刺激性错误的6小时追捕。
在我们之前的版本中,我们接下来的几行代码:
var aList = new Array;
for (var iDx=0; iDx < nNumOfElements; iDx++)
{
// Some code
aList.nCount = someValue; //This line
}
aList.sort(function(a, b) { return b.nCount - a.nCount ; });
在最后一个版本中,有人意外删除了评论。 并且没有其他成员变量nCount的初始化。
我们的一些客户得到了“数字预期”异常,这是非常明显的(回想起来),奇怪的是这个错误不能用我们的Q.A重现。也不是我们80%的客户!
怎么可能?有什么严格的模式,我们可以运行,会发现这样讨厌的错误?获得异常的客户端与不支持异常的客户端之间有什么区别(它不是浏览器版本,也不是Windows版本)
(我们的系统只在IE6 +上运行一个特殊的容器,这使我们很难在正常的I.D.E中编写代码。我们几乎用notepad ++编写了这些代码)
答案 0 :(得分:6)
你写了int
而不是var
。我一直这样做......
int iDx=0
应为var iDx=0
。
顺便问一下,您使用的编辑器是什么? int
是ES中的“未来保留词”,因此一个好的编辑器可能会以丑陋的方式突出显示它(gedit会将其设置为红色,默认情况下为红色下划线)以引起您的注意。
答案 1 :(得分:0)
看起来这是IE6与数组排序相关的错误。
尝试一些建议的解决方法here ...