user3

@blucas01
(user.go)()这种表达在实际开发中就几乎没出现过吧。

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

总结起来就是以 [ 和 ( 开头这两种情况需要注意。

user1

当然要加啊

user2

现代代码都不加



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

<br>;(user.go)()<br>

user3

不加,多一个字符脑子都要处理。

user1

user2

先说结论:“建议”加!说不加的,看看这道题,去运行一下就明白了。
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

user3

@blucas01 #4 一时竟然没反应过来,平时确实用的少,又加深了印象,感谢!

user1

@blucas01 #4 以前 v2er 总结过了:如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:
• 在以 “(”、“[” 、“/”、“+”、“-” 开头的语句前面都加上一个分号。

user2

不加分号的踢出团队,不允许这种害群之马污染我的代码

user3

@zxx0102 #26 在以 “(”、“[” 、“/”、“+”、“-” 开头的语句前面都加上一个分号。

user1

不加,如果要求加就格式化的时候自动添加。但是决定不会手动加。

user2

不加。分号看着难受。偶尔判断歧义或者欺骗编译器的才加

user3

@suxiaoxiann 其实真正需要关心的只有 ( 和 [ 需要在前面加分号,因为其他在几个正常开发中很少会作为一个表达式的起始。


@zxx0102 其实哪怕你每个语句尾加都坚持分号,你也最好在 ( 和 [ 前面也要加分号。再原教旨的分号党,也会有忘记写分号的时候,加分号多一重保险。

user1

项目配置了保存自动加分号…不然有的地方有 有的地方没有 难受

user2

你问这个问题,说明你的项目框架没有配备良好的 lint 。
公司缺乏对应的 JS 人才导致的。

user3

加不加都是靠 lint 工具处理的,但是个人项目不加,公司项目按公司规范来,公共项目别人加我就加。

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

比如用 prettier 格式化:

ts<br>// 格式化前<br>if (condition) return<br><br>;(condition ? fn1 : fn2)(args)<br><br>// 格式化后<br>if (condition) return<br>;(condition ? fn1 : fn2)(args)<br>

中间空行被删除了,实在是难受。加了分号肯定就不会有这个问题了

user1

前端不加,后端加

user2

不加,要加让格式化工具加

user3

我习惯不加,对于那种不加; 就会产生未知运行时错误的代码,ts 会有提示,避免写这种代码就好了。

user1

不加,让 prettier 决定

1
2
3
4
20 / 页
总数 793