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

(转)js文件中的中文注释问题
  在一些公用和自己写的js 文件中, 很多人都会使用中文的注释, 或者干脆就是网上拷贝的, 贴到js脚本文件中. 如果这些js脚本文件中存在中文, 这些中文可能是乱码.



     这时候就要注意了, 不要小看这些乱码的中文, 因为这些中文可能让你的js脚本里面的代码不被读取.



     如果A.jsp页面的编码是UTF-8, A.jsp中用     <script src="/js/mine.js"></script> 的形式引入mine.js



1.    mine.js (GBK)

alert('mine.js 2'); 
//我的js 库, 编码是GBk,下面的代码可能不会被读取到

function aa(a){
	alert(' a begin');
	this.a = a;
	alert(' a end');
}
alert('mine.js 2'); 

测试只 不alert('mine.js 1'); 也不alert('mine.js 2');



  2.    用eclipse 把 mine.js 文件的编码改为UTF-8
alert('mine.js 1');

/*???js ??, ??????GBk,???????????????????*/   
function aa(a){
	alert(' a begin');
	this.a = a;
	alert(' a end');
}

alert('mine.js 2'); 


      虽然中文显示是乱码的, 但是测试结果:

      alert('mine.js 1'); 了并且 alert('mine.js 2'); 了.



   3.   如果把mine.js中的中文注释去掉

alert('mine.js 1');
function aa(a){
	alert(' a begin');
	this.a = a;
	alert(' a end');
}
alert('mine.js 2');

    无论mine.js 的文件编码是GBK还是UTF-8,

    测试结果都是:

    alert('mine.js 1'); 了并且 alert('mine.js 2'); 了.



   4. 保留中文, 但是去掉function aa


alert('mine.js 1');

//我的js 库, 编码是GBk,下面的代码可能不会被读取到
alert('mine.js 2');
   
无论mine.js 的文件编码是GBK还是UTF-8,

    测试结果都是:

    alert('mine.js 1'); 了并且 alert('mine.js 2'); 了.



    看来因为存在中文注释, function aa 没被正确声明, 并且这个造成了整个js 文件不能被正确解析.

    

     所以, 在js 文件中, 注释最好还是用 英文的, 不用中文的. 不然你在这个项目中用得好好的js 文件, 在其他的项目中突然不能用了, 有不知道是什么原因, 那就惨了.



      测试浏览器IE6.0, 如果是IE7.0 和 IE8.0, 没有这个问题