日期:2014-05-16  浏览次数:20424 次

由JS注释引起的JS错误

线上一个JS函数失效,但是在本地调试是正常的。在排除环境问题之后,我开始想JS本身的问题。

?

两个JS的区别:线上的JS是压缩过的,确切的说是净化过的,本地的是源码。

?

于是我去网上找了一个在线净化JS的地址http://js.clicki.cc/,将本地的JS也净化一下,然后在本地用净化的JS跑,也出现跟线上一样的情况,同时我发现有JS错误**** is not defined,但是这个function明明是存在的。?于是我开始认真看净化的JS的代码,借助文本工具发现,有段“//jffdfdg”的注释被编译器当成了JS代码,于是解析就出错了。

?

所以,不要小看JS的注释,注释也要写规范!!!!

function check() {
??? ?var form = document.forms["form"];
??????? if (isSet(form.elements["q"]) ||

??????????? //此处注释不规范!!
??????????? isSet(form.elements["cat"])?) {
????????????return true;
??????? } else {
??????????? return false;
??????? }
??? }

1 楼 fashionia 2010-11-09  
进行压缩的时候没有把注释去掉?那你觉得你压缩达到了最优吗?
2 楼 大玉儿 2010-11-24  
fashionia 写道
进行压缩的时候没有把注释去掉?那你觉得你压缩达到了最优吗?

恩,你说的有道理,这里压缩是需要负责任的。应该是压缩的时候没有区分出来这是注释还是js代码,所以从压缩上可以优化,但是我觉得js本身写的规范些也是有必要的。