论坛首页 AJAX版 JavaScript

小心js中的逗号

浏览 10166 次
该帖已经被评为良好帖
作者 正文
最后更新时间:2008-01-25 关键字: javascript
修改了一些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不报错了。
   
最后更新时间:2008-02-28
养成下面这样写的习惯:

Ext.MessageBox.show({
    msg: 'Loading data from template...'
   ,progressText: 'Loading...'
   ,width:300
   ,wait:true
   ,waitConfig: {interval:500}
});
....
   
4 请登录后投票
最后更新时间:2008-01-25
这个确实是个常见问题,但是myy的解决办法实在是不认同。
如此写法也太难看了,格式与语意差别太大。
再说,你防治了删除最后一个属性导致的错误,同样带来了删除第一个属性的错误。

当能,删除最后一个更常见一些。
   
0 请登录后投票
最后更新时间:2008-01-26
这贴也能良好。。。?
   
8 请登录后投票
最后更新时间:2008-02-02
wangdi 写道
这贴也能良好。。。?

这良好贴其中有偶一票,这帖子无论是分析问题,解决以及总结都足够良好贴的标准。
   
2 请登录后投票
最后更新时间:2008-01-25
没看出一点有价值的东西!
   
0 请登录后投票
最后更新时间:2008-01-25
Readonly 写道
wangdi 写道
这贴也能良好。。。?

这良好贴其中有偶一票,这帖子无论是分析问题,解决以及总结都足够良好贴的标准。

呵呵,搜索用的不错。。。
标准在每个人心中。
   
0 请登录后投票
最后更新时间:2008-01-25
jindw 写道
这个确实是个常见问题,但是myy的解决办法实在是不认同。
如此写法也太难看了,格式与语意差别太大。
再说,你防治了删除最后一个属性导致的错误,同样带来了删除第一个属性的错误。

当能,删除最后一个更常见一些。


呵呵,刚开始我也很不习惯,不过我觉得逗号在前面对齐(后面通常参差不齐),比较方便检查是否漏掉。
用 // 注释屏蔽也比较方便(我一般用UltraEdit列模式,Alt+C)。
这种写法也可以推广到其他地方,典型的比如 sql,js array等...
   
0 请登录后投票
最后更新时间:2008-01-26
这个问题好像以前一个总结IE问题的帖子里面已经提出过了。那里还说了很多IE的问题,大家可以找找看。
   
0 请登录后投票
最后更新时间:2008-01-27
初写JS都会遇到的问题,我只想说IE太恶心了,连多个逗号都不让过。
   
0 请登录后投票
论坛首页 AJAX版 JavaScript

跳转论坛:
JavaEye推荐