现在,写 JS 带不带分号?

2015 年 12 月 3 日
 Gem
es6 出来,一些特性越来越接近 python ,写的时候也越来越不想带分号了,大家现在情况怎样?
9095 次点击
所在节点    JavaScript
69 条回复
think2011
2015 年 12 月 3 日
早期写过 coffeescript ,算是养成了简洁的习惯,现在靠 webstorm 的默认格式约束。
think2011
2015 年 12 月 3 日
想表达的是说,因为现在主要的编辑器是 webstorm ,如果缺少分号 webstorm 会提示的,所以我就靠 webstorm 的默认格式化。
lion9527
2015 年 12 月 3 日
带吧,不过我是业余玩票的。看的书上是建议带。 ES6 还不熟。
otakustay
2015 年 12 月 3 日
最近在着手做公司的编码规范, ES6 如果使用全带分号的写法的话,在 ES7 的 Decorator 上会遇上不小麻烦
如果选全不带分号的话,在对象字面量里遇到 Computed Property Key 的时候会遇上些麻烦

所以简单来说就是, ES 垃圾!
Rice
2015 年 12 月 3 日
多大的事这也问
liqingcan
2015 年 12 月 3 日
@Rice 为了养成好习惯,哈哈
otakustay
2015 年 12 月 3 日
上面有点说错,不是对象字面量里遇到 Computed Property Key ,是在 Decorator 撞上一个 Computed Property Key 的时候

大部分情况下是没关系的,只有下一条语句是以[或者(起始的时候,上面才必须分号结束,但这种语句太少太少
FrankFang128
2015 年 12 月 3 日
按你的团队规范来!
反正我是不带的。
FrankFang128
2015 年 12 月 3 日
@otakustay 那就很简单了,规范写成『在必要的时候加分号』
qhxin
2015 年 12 月 3 日
分号不是必须的吧?
learnshare
2015 年 12 月 3 日
必须加,这是共识
otakustay
2015 年 12 月 3 日
@FrankFang128 规范还是得写明白,事实上没多少人知道什么是“必要的时候”,不如拿这个当面试题坑人去


@learnshare 哪来的共识,随便给你找几个:

airbnb : https://github.com/airbnb/javascript#semicolons
github (虽然是以 coffee 为主): https://github.com/styleguide/javascript

虽然现在确实加分号是主流,但还没到“共识”这个程度,不加分号是可以运行得好好的
sleepwater
2015 年 12 月 3 日
项目内部统一就行, bootstrap 的 js 源码就是没分号的,不过个人还是习惯加分号。
otakustay
2015 年 12 月 3 日
发错, airbnb 是以分号为主流的,找错

顺便再给一个调查: https://twitter.com/JavaScriptDaily/status/662655515500089344
FrankFang128
2015 年 12 月 3 日
@otakustay 知道,我的意思是,规范不一定是『处处用分号』或『处处不用』。
love
2015 年 12 月 3 日
我是不带的,代码看上去清爽多了。只要记住首字符是括号的情况下才需要前面加分号规则就行。
learnshare
2015 年 12 月 3 日
@otakustay 我不能来反驳你,但分号是必须的
otakustay
2015 年 12 月 3 日
@learnshare 我完全不明白不加分号会产生什么问题,是人会看不懂还是机器会看不懂……
plqws
2015 年 12 月 3 日
@otakustay 《语言精粹》里提过
hkongm
2015 年 12 月 3 日
自定了 ESLint 规则
我们团队规定必须写

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/240830

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX