想问一下大家在写 vue 代码时,习惯句末加上 ; 吗?

2020-02-19 20:41:11 +08:00
 npm
我看 vue 官方都没有在句末加上 ;

但是我写 egg.js 时,egg 官方又推荐加上 ;

而且我之前写 PHP 时,也习惯加上 ;

现在感觉好纠结,到底该不该在句末加上 ;
8109 次点击
所在节点    Vue.js
64 条回复
Blackricky
2020-02-20 00:42:41 +08:00
在 《你不知道的 JavaScript (中卷)》里专门有一个小节( 5.3 节)叫 [自动分号] 作者有认为需要加上分号。

JavaScript 有时候会为代码自动加上分号, 自动分号插入( Automatic Semicolon Insertion,ASI )这是一种 “纠错”的机制,作者认为我们应该将这种机制的依赖降到最低。

有兴趣可以去看看原书。



我觉得说的很有道理,所以我加上了。
beastk
2020-02-20 00:57:07 +08:00
话说压缩的时候,不加分号会导致无法闭合吗?
molvqingtai
2020-02-20 01:14:13 +08:00
不加
S4msara
2020-02-20 02:05:04 +08:00
习惯是有这么个习惯,所以 eslint 总是让我很难受,于是有在刻意提醒自己不加了
mrcotter2013
2020-02-20 05:34:49 +08:00
不喜欢加,ESLint 和 Prettier 配置好自动去除多余的符号,空格,缩进一类的
shanlanlan
2020-02-20 07:58:18 +08:00
@Livid 2/4 楼强行广告。
alexsunxl
2020-02-20 08:28:09 +08:00
不加
反正编译器会加上
inhal
2020-02-20 08:58:10 +08:00
@beastk Quinlan?
Track13
2020-02-20 09:46:10 +08:00
vue 不加分号,其他习惯加。
sunmoon1983
2020-02-20 10:23:25 +08:00
强迫症必须加
Livid
2020-02-20 10:25:36 +08:00
@Mistwave
@ddsfeng
@shanlanlan

谢谢。那个账号已经被彻底 ban。
yiqiao
2020-02-20 10:31:29 +08:00
PHP 不是必须加「 ; 」的吗。。。
不加你能运行?
前端这个应该有规范吧。按规范来就好了啦
magiclz233
2020-02-20 10:32:17 +08:00
我自己觉得加上好点,因为这样在看代码的时候更清晰一点,但是我们团队是不加,我就好多都是自己加上,写完了一格式化没了。但是在写 Java 的时候,又得加上,搞的有点乱
drydiy
2020-02-20 10:40:23 +08:00
我曾经也为这个烦恼。我尝试不加一段时间后,发现代码看起来简洁了一点,就不加了。
其实需要手动加;的情况有这么几种:
1、当你使用 return 返回内容时,注意代码块需要跟 return 在同一行。( break、throw、continue 等同理)
2、注意 ()、[] 作为行头会跟上一行串联。
ben1024
2020-02-20 11:17:28 +08:00
看缘分加,顺手就加
php 必须要加的
jydeng
2020-02-20 11:19:42 +08:00
团队统一就好。我们统一加,因为都有 java、c#背景,习惯了。
no1xsyzy
2020-02-20 11:22:58 +08:00
@drydiy 1、不能算需要手动加,而是说自动加会多加
2、的话建议加在开头(防御性编程)
no1xsyzy
2020-02-20 11:29:40 +08:00
没什么好说的,我觉得这种可以自动化等价互转的问题甚至不能叫做代码规范。规范让人遵守以保证某种要求的,但这种问题你根本没必要去刻意遵守,只需要无脑让工具完成。
至于用哪个,看哪个顺眼就行,如果看的量还没多到足以看任何一个顺眼,那就抛硬币决定 —— 直到你真觉得不顺眼了,那你显然知道该怎样了。
DOLLOR
2020-02-20 11:44:12 +08:00
不加分号的,能不能告诉我,如何避免这种问题?
var a = b
(function(){})()

func()
['ul', 'ol'].map(func)
ochatokori
2020-02-20 12:03:24 +08:00
@DOLLOR #39 37 楼回答了你的问题,遇到([的行开头加个分号就是了,人又不是死的,说不加就全部不加

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

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

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

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

© 2021 V2EX