在我印象中是要加的,但是最新在学习 electron 和 vue.js 时,文档和例子中的代码,很多发现都没有加,很不习惯,我写 php 的时候也加了。
我想知道标准的做法。
我想知道标准的做法。

1 chaegumi OP 还有学习 html 的时候 单标签结束,印象中都是 这样的,/>,现在看的很多前端文档,里边又不要这样了。 |
2 hanzichi Oct 24, 2016 PHP 是强制要加的吧, Javascript 不是必须的 不过本人封号党 ... |
3 ansheng Oct 24, 2016 单纯的 js 是要加上的,因为你用了构建工具,所以他会自动的帮你加上, |
4 zhuangtongfa Oct 24, 2016 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号,如 ```js ;(a + b).toString() ``` |
5 66beta Oct 24, 2016 你需要 linter |
6 palmers Oct 24, 2016 js 语句结束应该加 `;` |
7 Keyes Oct 24, 2016 @zhuangtongfa 这个总结 666 |
8 dong3580 Oct 24, 2016 要加,不加一般情况也不会报错。然而会为以后留下隐患,可以上个代码检测工具了, |
9 nullizer Oct 24, 2016 ES6 之后语法越来越像 python 了,箭头函数和一堆函数式风格语句加了分号越看越怪异。 |
10 NemoAlex Oct 24, 2016 1. JS 本身的语法,对于有明确换行的语句,结束的分号是允许不写的。 2. 过去的主流是写分号,一方面是符合类 C 语言的语法,另一方面,某些工具对于没有分号的处理存在问题。 3. 现在的主流工具,处理对于不加分号的写法,都没有问题。 4. 现在的主流写法是不加。 https://github.com/feross/standard/blob/master/RULES.md#semicolons |
12 neoblackcap Oct 24, 2016 @NemoAlex 然而括号开头的话,那么就要加,这样不如全部都加 |
13 yangxiongguo Oct 24, 2016 大部分不写,有少部分是肌肉记忆写的,与我无关 |
14 FrankFang128 Oct 24, 2016 via Android 加毛分号 |
15 NemoAlex Oct 24, 2016 @neoblackcap 以前这么做主要是为了避免压缩出错。而现在的主流压缩工具,都不需要加分号了。 |
16 ijse Oct 24, 2016 |
17 zpf124 Oct 24, 2016 @chaegumi 1.分 这个东西最好加上,因为 一来,一部分的人的书写习惯,你不写他们看着不顺眼; 二来, js 本身当初设计就很简单不严谨,所有 小程序啊 以及个别的上古浏览器对于这些解析会有各种奇怪的问题,所以现在开始出现 tc 啊 strict 模式这些东西。 当然,如果上面这俩问题你不用考虑那就不用管他,加不加都可以,但记得一个项目里要统一,别前面不加,中间突然开始加分号,最后又没了。 2 , 结束标记问题, 不需要加! 这是当初的 XHTML 标准推广的玩意,要求标签必须有结束元标记必须带“/”,而且除了这个还要求 标签必须小写,属性必须有值且值必须被双引号包围。 然而这个标准已经死了,你现在写按照 html5 的标准或者 html4.1 的就行了。 |
19 broker Oct 24, 2016 可以参考下 Automatic Semicolon Insertion The source return a + b is transformed by automatic semicolon insertion into the following: return; a + b; The source a = b + c (d + e).print() is not transformed by automatic semicolon insertion, because the parenthesised expression that begins the second line can be interpreted as an argument list for a function call: a = b + c(d + e).print() |
20 neoblackcap Oct 24, 2016 |
21 whimsySun Oct 24, 2016 如果都不加,下面的情况需要注意下 ``` expression... ;(function() {...})() ;[1,3,4].forEach((x) => {...}) ``` |
22 ityike Oct 24, 2016 能不写就不写,主要原因是懒 |
23 missingbobo Oct 24, 2016 可以不加,但是建议加 |
24 SuperMild Oct 24, 2016 via iPad 加或不加,各成一派,根据个人喜好选择即可。 |
25 cai314494687 Oct 24, 2016 可以不写分号,前提是你知道是有不写分号导致的坑。你可以看 这本书 https://book.douban.com/subject/25786138/ 第六条。 |
26 txlty Oct 24, 2016 如果不写分号,代码压缩 /混淆等操作以后,很大几率会报错。 |
27 paranoiagu Oct 24, 2016 via Android |
28 chaegumi OP |
29 murmur Oct 24, 2016 加分号是一种习惯 不加分号才麻烦 另外标准是人订的 大家只要都按一个写就行了 |
30 an168bang521 Oct 24, 2016 我是不写不舒服斯基! 好吧,我稍微有点强迫症,除了大括号外,我都加; 否者看着不舒服,会感觉这段代码没有写完; if-else 语句,也会大括号; |
31 DiamondbacK Oct 24, 2016 尤雨溪解释了不用分号的理由 http://slides.com/eanyou/semicolons#/ |
32 Cbdy Oct 24, 2016 现在看来我觉得这个和“ C 语言要不要另起一行大括号”一样,为了代码风格统一考虑统一就好了。 |
33 xylitolLin Oct 24, 2016 我不加 |
34 Magician Oct 24, 2016 via iPhone 加上感觉好看点 |
35 chiv2 Oct 24, 2016 没有所谓的标准,只有习惯的区别。我以前加,现在习惯不加。 |
36 aaa0009 Oct 24, 2016 反正最好都要压缩的,无所谓加/不加。 |
37 zongren Oct 24, 2016 习惯不加,不加更简洁,没啥 |
38 Arnie97 Oct 24, 2016 via Android 由于我学 Javascript 前学过 VB 、 Pascal 、 Python 、 Ruby 等不写分号的语言和 C 、 C++、 Java 等写分号的语言,所以留下了带大括号(类 C 语法)的语言就要写分号的刻板印象,不写总感觉十分别扭。不知道大家有没有同感。 |
39 jydeng &nbp;Oct 24, 2016 习惯写,我同时写 C#. |
40 tchekai704 Oct 24, 2016 via iPhone 我就不说我写 python 还手动加分号, java 程序员 23333 |
41 codelegant Oct 24, 2016 via Android 拿不准就全部加上,降低风险。 |
42 ByZHkc3 Oct 25, 2016 不写分号能忍? |
43 kindjeff Oct 25, 2016 via iPhone 遇到(function(){})()这种东西在下一行的时候,上一行不加还识别不出来会报错 |
44 aoaione Oct 25, 2016 强迫症能忍? |
45 AdamChrist Oct 25, 2016 从 java 转过来..一直都加..而且看到 webstorm 的警告..我也很难受..一定要加上才行.. |
46 griffinqiu Oct 25, 2016 via iPhone 总结:不加,只在(和[打行首的时候加前置分号, 即;(和;[ |
47 Hyperion &nbp;Oct 25, 2016 via Android 重点不是插还不是插,插是因为防止程序二义性,自动插分号插错地方。不插是因为想通了为什么要插。 无论插不插都是语言风格,你明白为什么意义更大,没有谁比较智障谁比较高级的说法。个人是写的。 盲目的传教很讨人厌。 |
48 SourceMan Oct 25, 2016 via iPhone 不加,构建工具帮忙加 |
49 winglight2016 Oct 25, 2016 写 java 转过来,已经习惯加上分号了。。。 |
50 ly710 Oct 25, 2016 至少写 es6 的语法,不加分号之后代码要好看很多。 |
51 Quaintjade Oct 25, 2016 via Android |
52 Hyperion Oct 25, 2016 via Android @Quaintjade 因为 es6 有了... |
53 xcodebuild Oct 25, 2016 没有标准,这在 eslint 中是个可配置选项,团队保持一致即可 |
54 unknownservice Oct 25, 2016 不是必须要加,但是不加有时候会有问题,所以还是加上为好。 |
55 ZxBing0066 Oct 25, 2016 https://google.github.io/styleguide/Javascriptguide.xml?showOne=Semicolons#Semicolons 个人建议是添加 这样可以减少出现莫名其妙的问题的概率,毕竟一直加和选择加来说,一直加用脑少,出错概率小。。。 当然了这玩意见仁见智 |
56 Phariel Oct 25, 2016 via Android 强迫症,尤其是看着 IDE 里的缺少分号提示更是不能忍,通通加上 |
57 yolio2003 Oct 25, 2016 不要 |
58 codeyung Oct 25, 2016 一般不加 |
60 onlyhot Oct 25, 2016 via iPhone 加 |
61 nino Oct 25, 2016 python 也可以写分号,但从来没看人写过 |
62 Tyanboot PRO 必须加,不加不好看。我同时还写 Python , c#, c++。 |
63 root787 Oct 25, 2016 这种问题需要问? |
64 zwhu Oct 25, 2016 vue 的作者是坚定的不加分号党,还是看社区提倡哪种了 |
65 nigelvon Oct 25, 2016 按项目来看加与不加,统一就好。个人喜欢加分号。非常讨厌前面加分号的。 |
66 chnhyg Oct 25, 2016 我的建议是加,原因有二。 1 、如果不加分号,代码会有未知的隐患,即使有很完善的方案去避免隐患的发生,但是学习它也是需要成本的。 2 、在团队开发中,肯定要去规范,加或是不加。不加的过渡到加,基本没有学习成本;加的过渡到不加,还要去学习,会对新人快速融入到团队产生一定的影响。 |
67 xwartz Oct 25, 2016 不加 |
68 bigggge Oct 25, 2016 webstorm 有警告,不加难受 |
69 zongwan Oct 25, 2016 不清楚 vue 写 React 时 SublimeText 会提示我哪里应该加分号,哪里不用加。尤其碰到自动换行 感觉更了解到代码结构了 也避免了某些 bug |
70 Quaintjade Oct 25, 2016 via Android @Hyperion 是说 ES6 引入的模板字符串吗?那个是 `` ,不是单 /双引号 |
71 g0thic Oct 25, 2016 不加 |
72 Quaintjade Oct 25, 2016 via Android 话说未压缩的 jQuery 还是用分号的。 |
73 1340641314 Oct 25, 2016 以前有加分号,现在都不加分号了,没什么原因,主要还是因为懒 |
74 miniwade514 Oct 25, 2016 谁需要分号才能看清楚语句的开始和结束? |
75 Inside Oct 25, 2016 有这么难决定吗?凡是表达式语句就加以免表达式结果跟你的预期不一样,是完整的代码块就不加。 |
76 dyingbleed Oct 25, 2016 这是一个会引发圣战的问题…… |
77 magicdawn Oct 25, 2016 |
78 mingyun Oct 25, 2016 习惯加 |
79 Hyperion Oct 28, 2016 via Android |
80 magicdawn Nov 8, 2016 分号党看了尤雨溪的 slide 之后就转非分号党了... http://slides.com/evanyou/semicolons#/18 |
81 luwuer Sep 4, 2017 ES6 不建议加,所以我不加了... |
82 Axurez Mar 6, 2018 @NemoAlex 至少 React 和 Angular 是加的,TypeScript 也是加的。那个所谓的 Standard 只是这家公司叫 stdlib。 |
83 Axurez Mar 6, 2018 v8 和 node 也都是加的 |