论坛首页 AJAX版 JavaScript

小心js中的逗号

浏览 9286 次
该帖已经被评为良好帖
作者 正文
时间:2008-02-29
sam.ds.chen 写道
修改了一些js代码之后,FF正常,IE却报错了:
Expected identified, string or number
根据我上次的经验,应该是有多余的逗号。
于是我在eclipse中用正则表达式 ,\s*} 进行搜索,未找到任何匹配的字符串。
这就奇怪了!
只好另外想辙了,在我的project目录下搜索到今天修改的js文件列表,一共5个,我用肉眼逐一扫描这些js,最后发现问题出在这里:
Ext.MessageBox.show({
   msg: 'Loading data from template...',
   progressText: 'Loading...',
   width:300,
   wait:true,/*
   waitConfig: {interval:500}*/
});
var delegate = doLoad.createDelegate(doLoad, [], true);
templateDataStore.on('load', delegate);
templateDataStore.load({params:[tplId, userinfo.id]});

实际上这和上次的问题是同样类型的,有多余逗号,让IE噎住了,只是我写正则表达式的时候没考虑到这种/*****/的情况,没能把它揪出来。

去掉这个多余的逗号,IE不报错了。



怪楼主注释的地方不对.
   
0 请登录后投票
时间:2008-03-05
可以养成这样的习惯:
如果要修改数组,修改之前先把最后一个元素加上逗号,修改完之后再把最后一个元素的逗号去掉。修改时就可以把所有元素一视同仁了。
只要养成了习惯,写出来的代码是最好的,写的过程也会比较爽。
   
0 请登录后投票
时间:2008-04-07
Ext.MessageBox.show({   
   msg: 'Loading data from template...',   
   progressText: 'Loading...',   
   width:300,   
   wait:true,
 /*waitConfig: {interval:500}*/  
});   
var delegate = doLoad.createDelegate(doLoad, [], true);   
templateDataStore.on('load', delegate);   
templateDataStore.load({params:[tplId, userinfo.id]});  
   
0 请登录后投票
时间:2008-04-07
这都良好帖!!!

这不是误导人要使劲犯错,然后花个一天半天时间用尽各种办法找到错误,
然后再陶醉于找到错误的满足感吗

这种错误完全是粗心导致

实在不敢恭维这帖的评价.
   
0 请登录后投票
时间:2008-04-07
zhujinju 写道
stworthy 写道
写到前面比较难看了,用比较好的JS编辑器就能自动检查出来了,这个属于普通的语法问题。

我还没找到这种编辑器,能否给推荐一个

Spket IDE 1.6.10 有这个功能,并且其 JavaScript Formatter 可以设置自动除去多余的逗号
   
0 请登录后投票
论坛首页 AJAX版 JavaScript

跳转论坛:
JavaEye推荐