1
luoyou1014 2017-06-01 14:29:08 +08:00
现在众多框架已经不推荐加分号了,ESLint 直接报错,不加还能少敲个键,换行的时候也方便点。
|
2
sharkspeed 2017-06-01 14:30:45 +08:00
Lazy
|
3
littleylv 2017-06-01 14:34:06 +08:00
我个人倾向于加。
|
4
noe132 2017-06-01 14:34:58 +08:00
其实加不加我都能接受。不过习惯上还是加分号。
|
5
dong3580 2017-06-01 14:35:47 +08:00
强迫症,受不了不加分号的代码,
|
8
dong3580 2017-06-01 14:37:50 +08:00
|
10
qualleding 2017-06-01 14:40:25 +08:00
@dong3580 双引号增加流量是怎么来的...
|
11
Mitt 2017-06-01 14:40:50 +08:00
只有我觉得不加分号很难受的么,可能是因为我写 C++和 Php 时间太长了。。
|
12
Thoxvi 2017-06-01 14:41:10 +08:00 via Android
js 压缩的时候不写分号不是容易炸吗…
|
13
u5f20u98de 2017-06-01 14:41:21 +08:00
本来我也加的,结果 go 写习惯了 js 也不加了,挺好的省事
后遗症是写 java 和 php 的时候很挺难受 |
14
choury 2017-06-01 14:42:01 +08:00 via Android
写 golang 写习惯就不加分号了……
|
15
dozer47528 2017-06-01 14:43:46 +08:00
@qualleding 哈哈哈哈,打印的时候浪费油墨倒是真的
|
17
jugelizi 2017-06-01 14:45:49 +08:00
py 也不要
|
18
dong3580 2017-06-01 14:48:17 +08:00
|
19
Chappako 2017-06-01 14:48:40 +08:00
vue.js 官方推荐不加分号,所以就不再加了
|
20
qiaobeier 2017-06-01 14:51:30 +08:00
写 ES6 后不加了。
|
21
ck65 2017-06-01 14:59:26 +08:00
用上 JavaScript Standard Style 之后不加了,舒爽。
|
23
FrankFang128 2017-06-01 15:12:14 +08:00
因为前端开发者就是讨厌旧东西,包括旧的 Style。
|
24
viator42 2017-06-01 15:19:44 +08:00
蛤?写 js 居然不加分号了,退前端好久了都不知道
|
25
SuperMild 2017-06-01 15:25:17 +08:00
既然可以不加,自然有人选择不加。既然又可以加,自然出现加和不加两派。其实不给选项硬性规定最好,无意义的分派。
|
26
hiboshi 2017-06-01 15:29:41 +08:00
有的情况下必须加
比如 写了两行正则 var test1 = // var test2 = // 然后 这段代码 被 minify 压缩了,就是造成 JS 报错 解决办法就是 每个 正则后面加上分号 |
27
denano 2017-06-01 15:30:36 +08:00
虽然是习惯问题,但是现在越来越推崇不加分号了。。
因为没必要加,除了一些特殊情况需要在行开头加分号,其余的编译器会帮你自动断句 https://github.com/feross/standard/blob/master/RULES.md#semicolons |
28
mufeng 2017-06-01 15:33:16 +08:00
现在基本不加分号了
|
29
coolcoffee 2017-06-01 15:40:25 +08:00 3
下面代码压缩后就炸了。
(function(){ console.log(1); })() (function(){ console.log(2); })() |
30
crashX 2017-06-01 15:42:43 +08:00
不加分号是现代语言的趋势,LZ 从了吧。
|
31
sparkle2015 2017-06-01 15:44:08 +08:00
ruby 写多了,就不习惯加分号了。
|
32
AsherG 2017-06-01 15:44:23 +08:00
我 vs 装了 resharper,js 行尾不加分号就会被划上波浪线
|
33
Cbdy 2017-06-01 15:44:41 +08:00 2
@coolcoffee 有经验的程序员会这样写
;(function(){})(); |
34
wangleineo 2017-06-01 15:49:19 +08:00
因为是 python 程序员
|
35
littleylv 2017-06-01 15:56:00 +08:00 1
|
36
SoloCompany 2017-06-01 16:04:07 +08:00
standard 是不加
反正我是加 前端高大上不断的闹革命,在他们看来,如果有两个相似的选项,那肯定会选择一个和以前不相容的选项 |
37
SoloCompany 2017-06-01 16:07:40 +08:00
多扯淡一下,kotlin 的官方推荐标准也是不加
这个我遵循了 因为毕竟是新语言 对于 js 这类背着一大堆历史包袱的老旧语言,即便 es5678 玩出了花,那还得兼容吧?一个分号可以消除所有歧义,何必费脑筋 |
38
ChefIsAwesome 2017-06-01 16:10:44 +08:00
1. 除非彻底改成缩进式的语法,不然代码里头还是有各种符号,看着还是不够清爽。
2. JS 在某些情况下不写分号会出错。为了不写分号,我们就得记着哪些场景必须要写,浪费脑细胞。这些场景写了分号之后,跟其他不写分号的地方一对比,看起来又是很奇怪。 所以我选择写分号。 |
39
doubleflower 2017-06-01 16:17:26 +08:00
|
40
jtsai 2017-06-01 16:22:38 +08:00 via Android
以前加 Python 写多了 而且看 微信小程序不加 就不加了
|
41
autoxbc 2017-06-01 16:26:20 +08:00
我把分号理解成和注释一样的东西,不是给机器看的,是给人看的
如果自己写的程序打开一看某行没分号,只有两种可能:文件损坏,上次写到那被意外中断 |
42
tomoya92 2017-06-01 16:30:39 +08:00
新出的语言都不加了,不过我写的项目里,有的带,有的不带,也挺乱的
|
43
seki 2017-06-01 16:42:44 +08:00
加分号是告诉解释器,这里该断句了。如果解释器自己就知道怎么断句,自己手加分号就已经不是一个必要,而只是个人喜好
都 2017 年了,加和不加不就是 eslint 的一条规则的事……喜欢加就加吧 |
44
caniuse OP 不加分号和刚开始接触 jsx 语法时候一样,看起来很不舒服
|
45
fds 2017-06-01 17:01:57 +08:00
视觉干扰越少越好呀,反正有换行了。一般必须加分号的地方 lint 会提示,而且这种情况很少了,我最近遇到的只有下面这种展开必须用到括号时,前面要加分号:
({ board, sn } = incSn(board, "counter")) |
46
misaka19000 2017-06-01 17:02:39 +08:00
一个分号占一个字节,浪费空间
|
47
holy_sin 2017-06-01 17:06:34 +08:00
少打一个字是一个字
|
48
Phariel 2017-06-01 17:09:46 +08:00 via Android
强迫症 并且 WebStorm 默认规则是不加分号要高亮提示 所以必加
|
49
BOYPT 2017-06-01 17:12:39 +08:00
你可以把写分号的 js 和不写的看成两种语言;不写的叫 es6/7+++
|
50
bumz 2017-06-01 17:14:57 +08:00
@ChefIsAwesome #38 必须写分号的场合除了 for 内部,就是以括号开头了吧
以括号开头的情况只要加一个一元运算符就行了 !function(){}() !function(){}() 风格统一就行了 |
51
JerryCha 2017-06-01 17:24:41 +08:00
不加分号心里还是有点慌的
可能因为我一直都在写 C 的缘故 |
52
skadi 2017-06-01 17:26:17 +08:00 via Android
分号战争
|
53
shunia 2017-06-01 17:26:28 +08:00
一年前看到讨论这个问题的时候,大部分还是倾向于加.
这才多久,就这一个标准那一个标准的,倾向于不加了. js 界真的是不嫌事儿多. |
54
crossoverJie 2017-06-01 17:33:51 +08:00
Java 写习惯了
|
55
circleee 2017-06-01 17:43:14 +08:00
我发现新的语言都开始 要不加分号啦
|
56
wangjie 2017-06-01 17:45:55 +08:00
看到前面有说写 php 的,我又写 php 又写 golang 都没说啥。。。
|
57
chunqiuyiyu 2017-06-01 17:56:50 +08:00 via iPhone
强迫症患者,看到没分号就想加上。
|
58
Rocka 2017-06-01 18:03:39 +08:00 via Android 1
感觉那个 Standard JS 规范看着真是难受,2 格缩进而且不加分号,简直是异端中的异端…
|
59
chiu 2017-06-01 18:08:45 +08:00 via Android
我是强迫症受不了不加分号的代码
|
60
caniuse OP @Rocka 哈哈哈 我以前也是方案 4 格缩进 但是最近 react 写多了 习惯 2 格了 因为 4 格的话 屏幕显示不下了
|
61
caniuse OP 反感
|
62
caniuse OP @chunqiuyiyu 我也是啊,没分号感觉好变扭,到现在也没习惯
|
66
Krime 2017-06-01 18:38:40 +08:00
嗯,就算 JS 不压缩, ( [ / + - 开头的语句还是会和上一行一起执行,导致意外爆炸。
@wujunze 要时刻注意这么多符号还是太累了,除非 JS 的语法标准解决这个歧义问题,不然我还是选择统一加分号,毕竟加分号已经是下意识反应了。 |
68
Cbdy 2017-06-01 18:46:16 +08:00
@SoloCompany 其实这是一个很简单的问题:用 es6、7 写的代码,有多少人不经过 babel 直接放到浏览器中跑?
因此,我们可以从两个方面看待 javascript:服务端 js 和客户端 js,客户端 js 需要加分号,服务端不需要 |
69
MrJing1992 2017-06-01 18:48:54 +08:00
我就想问问,不加分号的 js 代码,最终由 babel 编译压缩后,加了没。
|
71
caniuse OP 后端 koa
|
72
loveminds 2017-06-01 18:59:53 +08:00
不喜欢
|
73
Rice 2017-06-01 19:00:34 +08:00 via iPhone
不加才是正道
|
74
SuperMild 2017-06-01 19:04:49 +08:00
可见 Golang 吸收了别的语言的经验教训,从一开始就提供了 gofmt 代码格式化工具是多么明智。
|
75
caniuse OP @SuperMild 我想用 golang 开发个分布式推送系统 能用那些东西呢? 不想用 java 写的 zookeeper、kafka
|
76
Cbdy 2017-06-01 19:28:22 +08:00 1
@caniuse 您说的很有道理,我本身是后端,js 不算很了解,刚刚看完这个帖子专门去学习了一下 js 的 asi ( auto semicolon insertion ),我收回刚刚说的区分前后端 js 的言论,那个说法不合理。
我现在认为更好的做法是从 js 本身出发,了解不加分号会怎样导致问题,asi 的工作机理,然后不加分号。因为我注意到在不了解机理的情况下去加分号只是一种鸵鸟策略,并不能解决所有问题,分享刚刚学习的一篇文章 http://justjavac.com/javascript/2013/04/22/automatic-semicolon-insertion-in-javascript.html |
77
timelessg 2017-06-01 19:33:23 +08:00 via Android
我写 swift 也不加
|
78
jason19659 2017-06-01 19:34:39 +08:00
;
|
79
changwei 2017-06-01 19:34:41 +08:00 via Android
节省键盘寿命
|
80
dallaslu 2017-06-01 19:38:57 +08:00
这种编程风格、语言规范的冲突问题,都应该由 IDE 解决。
你喜欢加分号,你打开所有的源代码,每行行尾该有分号的地方就都有分号;其他人不喜欢分号,他们看到的源代码就没没有分号。IDE 在查看时自动处理分号的显示与隐藏,保存到硬盘时以相同的策略转换到某一标准编程规范,这样就能与版本工具完美协作。 发布时,同样可以指定一个策略,输出某种风格的压缩代码。 这样,我们就不必要争论花括号要不要另起一行、缩进是制表符还是 4 个空格、if / while 等控制语句后面只有一句话时要不要括号、body 与 head 要不要缩进、br 要不要闭合、多少个字符就要换一行、赋值语句里等号前面要不要有个空格,等等等等没有实际意义的口水战话题。这样,我们至少可以把更多的精力用在「变量命名里用不用下划线」以及「用拼音还是英文起名字」这种稍稍有点高度的问题上(尽管这俩问题也没有太大的意义)。 然而绝大多数 IDE 可能并没有注意到这个需求。单从语法上讲,Kotlin 与 Java 语法迥异,但仍完美协作;各 IDE 应该参考于此,来实现其他语种的方言支持! |
81
sox 2017-06-01 19:47:08 +08:00
不知道你为什么又开一个帖问这种月经问题,先搜索一下可以吗 :)
|
82
viko16 2017-06-01 19:49:57 +08:00
eslint --fix
或 standard --fix 配置能解决的问题就不算是问题了吧~ |
83
dant 2017-06-01 19:53:12 +08:00
你以为加了分号就不会在你不希望出现分号的地方自动插入分号了吗(
|
84
doctorlai 2017-06-01 20:28:46 +08:00
不加分号, 无法混淆吧。
|
85
codehz 2017-06-01 21:55:38 +08:00
@coolcoffee #29 压缩的问题,应该是压缩器的问题。。。因为压缩代码应该要保证语义不变的
|
86
iAcn 2017-06-01 21:56:22 +08:00 via Android
用习惯 Python 的单引号之后再用 Java 的双引号感觉好难受 😂
|
87
halden 2017-06-01 22:04:05 +08:00
本来我一个专业搞前端的写着 js 就是从来不加,偶尔用 node 也没这习惯。最近公司把我扯去写 php,经常忘记加然后各种报错,现在觉得 ; 简直反人类。。
|
88
ChiChou 2017-06-01 22:14:01 +08:00
懒
|
89
pandasjw 2017-06-01 22:51:32 +08:00 via Android
加不加都能接受
|
90
Kei 2017-06-01 23:03:36 +08:00
只需要知道什么时候要加,其余情况就都不加
压缩代码会用专门的工具,而不是纯粹把空格换行符去掉 |
91
sensui7 2017-06-02 01:07:40 +08:00
bootstrap 不加, vue 也不加, eslint 也不推荐加,
|
92
tlday 2017-06-02 03:22:43 +08:00 via Android
个人不加,倾向于靠合理清晰的缩进标识代码结构
|
93
tlday 2017-06-02 03:26:47 +08:00 via Android
个人认为编程语言必须行尾加分号是早期对编译器的妥协。另外,看下楼里句尾加句号的人的比例,再对比下说写代码要加分号的比例应该是个比较有意思的数据。
|
94
Chingim 2017-06-02 07:54:17 +08:00 via Android
看到分号难受,不写。引擎的 asi 会帮你处理好的
|
95
wakaka 2017-06-02 08:24:46 +08:00
最后 prettier 一下就整齐了
|
96
def1984 2017-06-02 09:05:17 +08:00
写 swift 习惯了
|
97
jixiangqd 2017-06-02 09:17:31 +08:00
应该问 “为什么 js 允许程序员不写分号?”
|
98
ly710 2017-06-02 09:20:15 +08:00
很蛋疼,我本来看 redux 的文档发现上面的代码都是不加分号的,然后我也喜欢不加分号。后来再看其他的文档都是加了分号的,而且用了 airbnb 的代码规范貌似是规定要加分号的,我又改回来了。
|
99
SourceMan 2017-06-02 09:25:32 +08:00
我就只说一句
编译后默认全部都是有分号的 |
100
reallarry 2017-06-02 09:30:26 +08:00 via Android
JavaScript 的 ASI(Auto Semicolon Insertion) 机制,但还是自己打上分号比较好
|