新手问题 javascript 文件后面总是多一个分号

crazyjin · 2013年03月12日 · 最后由 crazyjin 回复于 2013年04月22日 · 2745 次阅读

用 ror 做的项目,具体情况是现在页面引用的 javascript 文件加载到浏览器后文件末尾都会多一个莫名其妙的分号,导致所有的 function 都 not difined。

求破解!

莫名奇妙地恢复了,文件末尾分号依旧在,但是 function 都能调用了,不在是 not difined 了。 昨天晚上这个问题出现,一直持续到刚才,我还以为是我不小心改了神马配置文件,遂从建了一个项目把代码移了过去,发现还是不行。这才求住各位大侠。不想问题莫名奇妙地消失了,我在尝试一下重现。

有没有具体点的? javascript 文件末尾有分号是好的做法

是不是用了 coffee ? 如果是 coffee,生成的 js 会包含在一个 function 里,全局函数需要

@myFunc = myFunc;

末尾当然要有分号,除非你是 function xx() {} ,不过加了分号,也不会有任何影响。如果你看过很多 js 库的话,你会发现,很多库为了防止前面一个文件没有正常结束,通常在文件开头还特意加了分号。

#1 楼 @ShiningRay 是好的做法??

#3 楼 @crazyjin 因为 javascript 其实可以不写分号的,但会引起语义的歧义

参考

http://mislav.uniqpath.com/2010/05/semicolons/

每句后面加分号写代码显得很累,但要注意歧义的问题

所以一般会在 javascript 源代码文件的前后都加上分号,以表示和其他代码的语义隔离

一般 jquery 插件代码第一行也是分号开头的,纯防范式的。

#5 楼 @AReverie 没分号的话 编译的时候可能会出错吧。。

#7 楼 @Tony612 某是指 native javascript

不好意思,很早就解决了这个问题,是我 javascript 本身语法有错误 javascript 文件末尾加;是好习惯 结帖

需要 登录 后方可回复, 如果你还没有账号请 注册新账号