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