强迫症问题: 大家写 js 是用分号还是不用分号?

2018-05-21 12:15:19 +08:00
 zsxzy
加和不加又有什么优缺点.. 我是习惯了加, 从 c, c++, java 一路走过来的习惯
7635 次点击
所在节点    Node.js
50 条回复
noe132
2018-05-21 12:19:17 +08:00
不加。
多层括号的时候,你很难区分哪里要加哪里不能加。干脆不加更方便
jecshcier
2018-05-21 12:20:24 +08:00
swift 去掉了所有分号。跟着苹果走
firede
2018-05-21 12:21:27 +08:00
以前习惯加,现在不加,这种事儿交给 prettier 管。
vsomeone
2018-05-21 12:21:29 +08:00
更倾向于加,因为不加会遇到某些特殊情况,脑容量小不想花时间去额外记忆
VDimos
2018-05-21 12:22:33 +08:00
加分号习惯好,不加很容易出毛病
SuperMild
2018-05-21 12:23:39 +08:00
由于现在的编辑器非常智能,配置好编辑器的 lint 功能,会有错误提示,加不加都很方便,跟着提示做就行,或者自动格式化。
yulitian888
2018-05-21 12:24:56 +08:00
加分号为好,在压缩的时候更安全。
比如这个例子
var reg = //;
reg.test("xxxxxxxxx");
这是一个正则表达式,只是内容为空(实际发生的可能性比较小,只是举例而已)
不加分好的话,一压缩,呵呵哒~~~
lamada
2018-05-21 12:25:05 +08:00
eslint standard
maichael
2018-05-21 12:26:20 +08:00
不加,上面说的不加分号带来的问题,有 Lint 完全能够避免。
xiaojie668329
2018-05-21 12:28:12 +08:00
以前不喜欢加,但是 prettier 会给我加上,而且 JS 中有些语句不加分号会出问题,所以现在都加了。
yulitian888
2018-05-21 12:36:47 +08:00
@maichael 用的 VS 的 Resharper 插件会推荐加。
实际上在压缩的时候,还是有一些别的情况会出问题的
a = b;(function(){ return 100 })();
a = b(function(){ return 100 })();
的区别就......
murmur
2018-05-21 12:38:15 +08:00
当然要加
后端加的前端也加
yulitian888
2018-05-21 12:39:53 +08:00
@maichael 补充一下,举这几个例子的一个前提是,代码不应依赖于开发环境和工具。因为不是所有人都是用的统一的开发环境和工具(而且即使同一个工具,不同版本之间也可能有差异)。
jason19659
2018-05-21 13:06:40 +08:00
想起来就用,忘了就没了
LeungJZ
2018-05-21 13:14:46 +08:00
不加分号。tab = 4 个空格。驼峰命名。
来吧开战吧。




分号主要用于

const a = 10

;(_ => {})()

这里,IIFE 一压缩就错。
但是不喜欢分号所以全部改成

!(_ => {})()
Justin13
2018-05-21 13:19:43 +08:00
加,必须加,这是好习惯
ipwx
2018-05-21 13:25:21 +08:00
@jecshcier 强烈反对。JS 就是 JS,凭什么和 Swift 走?
burby
2018-05-21 13:27:19 +08:00
楼主了解一下 standard 或是 google style
选一个一直用下去就可以了,但是一定要团队统一
格式上没有必要花太多时间,
毕竟编辑器做的比人更精确更好
banricho
2018-05-21 13:28:27 +08:00
没事找事,爱咋写咋写,没有优劣
说不加分号会出事的,怕是不知道现代化的生产力工具完全可以避免这些问题
autoxbc
2018-05-21 13:28:38 +08:00
就说一点,前置分号那几个特例非常丑

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

https://www.v2ex.com/t/456467

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

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

© 2021 V2EX