1
nomagick 82 天前 12
不加分号心神不宁。
加分号不是给编译器加的,是给程序员的脑子加的,了结心智负担,清空快速缓存准备加载下一行。 |
2
reoah2 82 天前
加了会自动对齐,及其舒服
|
4
blucas01 82 天前 1
最好加,不然出问题可能会懵逼,不信你看:
```js let user = { go() { console.log('GO') } } (user.go)() ``` |
5
yikyo 82 天前 1
正常项目都必须统一团队风格,喜欢哪个都可以,用 git 钩子推送时自动格式化吧。
个人喜欢加分号,但是越来越多的项目好像都不加了。 |
6
codehz 82 天前
不是都用自动格式化器的吗(
prettier 不加分号的模式也会在上面那种冲突的情况给你在开头加分号的( |
7
BeautifulSoap 82 天前
加。eslint 警告,然后代码 push 到 github 后,自动调用 github actions 加,以防有的人就是会漏掉。ps:代码格式化极其不推荐 prettier 这破玩意,难用得一塌糊涂还是建议用 eslint 做代码格式化
|
8
nomagick 82 天前
没错,prettier 懂个茄子,多打两个空行都不行,说起来就是劳资最懂,空行就是不能多,简直为祸一方
|
9
tomSoSleepy 82 天前
个人习惯不加 小公司咋搞都行,但是协作的时候一般还是加会好点
|
10
shintendo 82 天前
不加,视觉上总觉得脏脏的。
上面说的括号开头的情况,实际开发碰到的频率很低,即使碰到也有 eslint |
11
SingeeKing 82 天前 via iPhone
这东西都是自动格式化的啊,我其实倾向于加,不然某些语法下换行可能出现各种不太注意的错误
|
12
dagouziwangwang 82 天前 1
不 care ,反正都是 eslint 或 prettier 处理的
|
13
si 82 天前
我一般会加,偶尔懒得加。
|
14
Laobai 82 天前
不加,加了看着难受
|
15
leaveeel 82 天前
有要求的都会配置 eslint ,保存的时候和规则不一样加了也给你删了,不加也自动给你加上。我写的时候不加,按习惯来最顺手,反正最后提交上去了都是规范的
|
16
chenliangngng 82 天前
不加;自动补齐是 js 糟粕之一,建议加
不过按道理你无需 care ,可以交给 vscode 自动格式化 |
17
InDom 82 天前
一般都加, 但不要求别人加,爱加不加.
|
18
lisxour 82 天前
最好加,有的时候代码压缩的时候可能对某些写法或者语法不支持导致没自动加“;”,编译出来的代码是有问题的,而且 release 的变量名也是全改了的,当时定位问题,定到头皮发麻
|
20
alanhe421 82 天前
team 的话,加
|
21
DOLLOR 82 天前 1
@blucas01
`(user.go)()`这种表达在实际开发中就几乎没出现过吧。 实际开发中不加括号会出现问题一般都就两种情况,一个是 IIFE ,如 (() => {})() 另一个是 array 解构赋值,如 [first, second, ...rest] = arr 总结起来就是以 [ 和 ( 开头这两种情况需要注意。 |
22
mandex 82 天前
当然要加啊
|
23
jisuowei 82 天前
现代代码都不加
--- 如果是行首是括号,加在前面: ``` ;(user.go)() ``` |
24
lyxxxh2 82 天前 1
不加,多一个字符脑子都要处理。
|
25
dd0754 82 天前
加
|
26
zxx0102 82 天前
先说结论:“建议”加!说不加的,看看这道题,去运行一下就明白了。
let a = 1, b = 2, c = 3, d =4 if(true) { [a, b] = [b, a] [c, d] = [d, c] } js 的作用域很烦的,原因和结果看这个: https://blog.csdn.net/qq_41308489/article/details/122798951 |
27
zhhbstudio 82 天前
@blucas01 #4 一时竟然没反应过来,平时确实用的少,又加深了印象,感谢!
|
28
suxiaoxiann 82 天前 1
@blucas01 #4 以前 v2er 总结过了:如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:
• 在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号。 |
29
wzdsfl 82 天前
不加分号的踢出团队,不允许这种害群之马污染我的代码
|
30
suxiaoxiann 82 天前
@zxx0102 #26 在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号。
|
31
Track13 82 天前
不加,如果要求加就格式化的时候自动添加。但是决定不会手动加。
|
32
wjx0912 82 天前
不加。分号看着难受。偶尔判断歧义或者欺骗编译器的才加
|
33
DOLLOR 82 天前
@suxiaoxiann 其实真正需要关心的只有 ( 和 [ 需要在前面加分号,因为其他在几个正常开发中很少会作为一个表达式的起始。
@zxx0102 其实哪怕你每个语句尾加都坚持分号,你也最好在 ( 和 [ 前面也要加分号。再原教旨的分号党,也会有忘记写分号的时候,加分号多一重保险。 |
34
FishBear 82 天前
项目配置了保存自动加分号...不然有的地方有 有的地方没有 难受
|
35
Sayuri 82 天前
你问这个问题,说明你的项目框架没有配备良好的 lint 。
公司缺乏对应的 JS 人才导致的。 |
36
ttionya 82 天前
加不加都是靠 lint 工具处理的,但是个人项目不加,公司项目按公司规范来,公共项目别人加我就加。
不过实际使用下来,感觉还是加分号会更好点。 比如用 prettier 格式化: ```ts // 格式化前 if (condition) return ;(condition ? fn1 : fn2)(args) // 格式化后 if (condition) return ;(condition ? fn1 : fn2)(args) ``` 中间空行被删除了,实在是难受。加了分号肯定就不会有这个问题了 |
37
zhangky 82 天前
前端不加,后端加
|
38
digimoon 82 天前
不加,要加让格式化工具加
|
39
cuzfinal 82 天前
我习惯不加,对于那种不加; 就会产生未知运行时错误的代码,ts 会有提示,避免写这种代码就好了。
|
40
nagisaushio 82 天前 via Android
不加,让 prettier 决定
|
41
enjoyCoding 82 天前
看 lint, 有的项目 lint 是必加 有的项目是必不加, 但我最讨厌的是可加可不加
|
42
78786381 82 天前
不加,eslint 和 prettier 都设置的不要
|
43
Nitsuya 82 天前
java 写多了, 现在写 kotlin 随手加了又马上删掉.......
|
44
libook 82 天前
不加的前提是有 StandardJS 这种 linter 保障不出问题,没有 linter 老老实实加分号。
我反正都会加。 |
45
mxT52CRuqR6o5 82 天前 via Android
不怎么关心加不加,基本靠 lint 工具决定
|
46
mark2025 82 天前
@nomagick prettier 什么破烂玩意儿,if/else 都要限制你用它制定的规则
https://github.com/prettier/prettier/issues/3084 https://github.com/prettier/prettier/issues/840 |
47
mark2025 82 天前
@suxiaoxiann 结合 eslint 的相关规则,其实不加也没问题了。vscode 之类 ide 会自动检测判断的
|
48
mark2025 82 天前
@ttionya 可以设置 eslint 规则,禁止单行多命令,必须用大括号来包裹,
比如 禁止 `if (condition) return`, 必须 `if (condition) { return }` 或者 ``` if (condition) { return } ``` 我以前是分号党,tab 党,逐渐变成无分号,4 空格,现在是无分号,2 空格了。 写 TS 的缩进得小点不然行宽容易超限,尤其是写前端。 |
50
Chad0000 82 天前
写 Angular ,一步到位:加。
|
52
eephee 82 天前
不加 `;` 因为麻烦而且看着乱不好看,配合 lint 工具解决可能出现的二义性问题
加 `?` 因为要利用类型严格模式提升代码的健壮性 |
54
blucas01 82 天前 1
@suxiaoxiann 记这条规则,不如养成加分号的习惯方便
|
55
darkengine 82 天前
写的时候不加,最后 prettier format 一遍,真遇到过几次没加分号 npm start 报错的。
|
56
suxiaoxiann 82 天前
@blucas01 #54 现在前端基本默认都不加了,比如 Vue
|
57
molvqingtai 82 天前
加不加看团队规范,我们团队不加,至于 IIFE 问题,都有 lint 限制
|
58
zed1018 82 天前
不加,并且 prettier 里配置了移除分号
|
59
qa2080639 82 天前
加 写 PHP 习惯了
|
60
daolanfler 82 天前 1
加分号,加逗号,都是 prettier 一键格式化的事儿
|
61
hereIsChen 82 天前
个人习惯不加
|
62
andy7076 82 天前
纠结这干啥
|
63
Wxh16144 82 天前
今天纠结 `;`(表达式末位分号)
明天纠结 2-tab ,4tab (缩进),还是 2-space 4-space (空格) 后天考虑 单句 if 加不加 `{}` (花括号) 我这小公司看个人喜好写,leader 配了格式化,提交的时候就按照他的喜好来就好了 如果你是 leader , 那就按照自己喜好来配置 但是从我个人角度来说,代码是给人阅读的。 加于不加我都有。 代码很乱的时候就加分号。 |
64
xntzmk 82 天前
加了分号感觉很麻烦,而且丑。但主要还是得看团队的 prettier
|
65
akcode 82 天前
加,同意语言风格;各种语言写得多的时候,一会加,一会又不加,会精神错乱。
|
67
doommm 81 天前
@BeautifulSoap ESlint 准备要废弃格式化相关的规则了 https://eslint.org/blog/2023/10/deprecating-formatting-rules/
|
68
jqtmviyu 81 天前
爱护小拇指, 从不加分号开始.
|
69
yb2313 81 天前
biome 配置项配置可以设置必要的地方加不就行了吗, es 和 pre 都不喜欢, 还有那个 oxc, 估计又是哪个的 kpi 项目, 连这种基本功能都不做, 要让 esl 来做
|
70
BeautifulSoap 81 天前
@doommm 文章最好看完,这些规则现在摘出来成为独立项目由社区维护了。eslint-stylistic 。专门用来做格式化的工作。 说真的 eslint 的格式化比 prettier 这破玩意好用一万倍
|
71
NasirQ 81 天前
加,但不一定是手动。
一般设置编辑器会自动保存时格式化添加。 另,写久了,很多时候就跟打字一样会下意识的加上标点。不存在心智负担。 反而有种整齐的美感。 |
72
xiangyuecn 81 天前
/* eslint-disable */ 嘿嘿,8 小时工作量被我 1 小时干完了,摸鱼摸鱼
|
73
shellus 81 天前
假的做不做都可以: 找出根本区别再进行选择
真的完全做不做都一样:绝对不做! |
74
palxie 81 天前
我们团队不加, 个人也觉得没必要
|
75
aolyu 81 天前
不加
|
76
mark2025 81 天前
@BeautifulSoap eslint 是给你一个框架和可配置的规则,而 prettier 是给你一个 prettier 制定的规则。显然前者更加符合实际需求(不同人有不同的风格习惯,不同项目有不同的历史包袱)
|
77
chf007 81 天前 1
加
个人的出发点是如果一个语言任何场景都不加都没问题那就不加,JS 很明显是不行的 |
78
shyangs 81 天前
JavaScript 的 ASI 是設計失誤,帶來了歧義,還讓社區陷入分ˋ號黨爭內耗. (有些類似無意義的男女對立)
應該多學學 Python 哲學: There should be one – and preferably only one – obvious way to do it. 現在語言流行趨勢是越來越嚴格,例如 TypeScript (靜態型別),Rust (嚴格的編譯器). JS 如果還喜歡歧義的語句,小心下場像 Perl 一般. |
79
sunmoon1983 80 天前
必须要加,不加不舒服
|
80
forty 2 天前
配置好 prettier, 项目里放上 .prettierrc
|