用 ror 做的项目,具体情况是现在页面引用的 javascript 文件加载到浏览器后文件末尾都会多一个莫名其妙的分号,导致所有的 function 都 not difined。
求破解!
莫名奇妙地恢复了,文件末尾分号依旧在,但是 function 都能调用了,不在是 not difined 了。 昨天晚上这个问题出现,一直持续到刚才,我还以为是我不小心改了神马配置文件,遂从建了一个项目把代码移了过去,发现还是不行。这才求住各位大侠。不想问题莫名奇妙地消失了,我在尝试一下重现。
有没有具体点的? javascript 文件末尾有分号是好的做法
是不是用了 coffee ? 如果是 coffee,生成的 js 会包含在一个 function 里,全局函数需要
@myFunc = myFunc;
末尾当然要有分号,除非你是 function xx() {} ,不过加了分号,也不会有任何影响。如果你看过很多 js 库的话,你会发现,很多库为了防止前面一个文件没有正常结束,通常在文件开头还特意加了分号。
function xx() {}
#1 楼 @ShiningRay 是好的做法??
#2 楼 @doitian 使用了 coffee
#3 楼 @crazyjin 因为 javascript 其实可以不写分号的,但会引起语义的歧义
参考
http://mislav.uniqpath.com/2010/05/semicolons/
每句后面加分号写代码显得很累,但要注意歧义的问题
所以一般会在 javascript 源代码文件的前后都加上分号,以表示和其他代码的语义隔离
一般 jquery 插件代码第一行也是分号开头的,纯防范式的。
#5 楼 @AReverie 没分号的话 编译的时候可能会出错吧。。
#7 楼 @Tony612 某是指 native javascript
不好意思,很早就解决了这个问题,是我 javascript 本身语法有错误 javascript 文件末尾加;是好习惯 结帖