大家写 JS/TS 的时候会在表达式后面加;吗?语法上加不加都行,大家团队有要求吗?

10 天前
 289396212
5370 次点击
所在节点    JavaScript
79 条回复
DOLLOR
10 天前
@blucas01
`(user.go)()`这种表达在实际开发中就几乎没出现过吧。

实际开发中不加括号会出现问题一般都就两种情况,一个是 IIFE ,如
(() => {})()
另一个是 array 解构赋值,如
[first, second, ...rest] = arr

总结起来就是以 [ 和 ( 开头这两种情况需要注意。
mandex
10 天前
当然要加啊
jisuowei
10 天前
现代代码都不加

---

如果是行首是括号,加在前面:

```
;(user.go)()
```
lyxxxh2
10 天前
不加,多一个字符脑子都要处理。
dd0754
10 天前
zxx0102
10 天前
先说结论:“建议”加!说不加的,看看这道题,去运行一下就明白了。
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
zhhbstudio
10 天前
@blucas01 #4 一时竟然没反应过来,平时确实用的少,又加深了印象,感谢!
suxiaoxiann
10 天前
@blucas01 #4 以前 v2er 总结过了:如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:
• 在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号。
wzdsfl
10 天前
不加分号的踢出团队,不允许这种害群之马污染我的代码
suxiaoxiann
10 天前
@zxx0102 #26 在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号。
Track13
10 天前
不加,如果要求加就格式化的时候自动添加。但是决定不会手动加。
wjx0912
10 天前
不加。分号看着难受。偶尔判断歧义或者欺骗编译器的才加
DOLLOR
10 天前
@suxiaoxiann 其实真正需要关心的只有 ( 和 [ 需要在前面加分号,因为其他在几个正常开发中很少会作为一个表达式的起始。


@zxx0102 其实哪怕你每个语句尾加都坚持分号,你也最好在 ( 和 [ 前面也要加分号。再原教旨的分号党,也会有忘记写分号的时候,加分号多一重保险。
FishBear
10 天前
项目配置了保存自动加分号...不然有的地方有 有的地方没有 难受
Sayuri
10 天前
你问这个问题,说明你的项目框架没有配备良好的 lint 。
公司缺乏对应的 JS 人才导致的。
ttionya
10 天前
加不加都是靠 lint 工具处理的,但是个人项目不加,公司项目按公司规范来,公共项目别人加我就加。

不过实际使用下来,感觉还是加分号会更好点。

比如用 prettier 格式化:

```ts
// 格式化前
if (condition) return

;(condition ? fn1 : fn2)(args)

// 格式化后
if (condition) return
;(condition ? fn1 : fn2)(args)
```

中间空行被删除了,实在是难受。加了分号肯定就不会有这个问题了
zhangky
10 天前
前端不加,后端加
digimoon
10 天前
不加,要加让格式化工具加
cuzfinal
10 天前
我习惯不加,对于那种不加; 就会产生未知运行时错误的代码,ts 会有提示,避免写这种代码就好了。
nagisaushio
10 天前
不加,让 prettier 决定

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

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

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

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

© 2021 V2EX