(转)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, 没有这个问题