为什么那么多人写 js 不喜欢加分号

2017-06-01 14:24:53 +08:00
 caniuse
22628 次点击
所在节点    程序员
129 条回复
ck65
2017-06-01 14:59:26 +08:00
用上 JavaScript Standard Style 之后不加了,舒爽。
MrWii
2017-06-01 15:10:24 +08:00
@dong3580 你这个理由明显不成立啊,不如说 ' 比 " 少按一个键呢
FrankFang128
2017-06-01 15:12:14 +08:00
因为前端开发者就是讨厌旧东西,包括旧的 Style。
viator42
2017-06-01 15:19:44 +08:00
蛤?写 js 居然不加分号了,退前端好久了都不知道
SuperMild
2017-06-01 15:25:17 +08:00
既然可以不加,自然有人选择不加。既然又可以加,自然出现加和不加两派。其实不给选项硬性规定最好,无意义的分派。
hiboshi
2017-06-01 15:29:41 +08:00
有的情况下必须加
比如
写了两行正则
var test1 = //
var test2 = //

然后 这段代码 被 minify 压缩了,就是造成 JS 报错 解决办法就是 每个 正则后面加上分号
denano
2017-06-01 15:30:36 +08:00
虽然是习惯问题,但是现在越来越推崇不加分号了。。
因为没必要加,除了一些特殊情况需要在行开头加分号,其余的编译器会帮你自动断句
https://github.com/feross/standard/blob/master/RULES.md#semicolons
mufeng
2017-06-01 15:33:16 +08:00
现在基本不加分号了
coolcoffee
2017-06-01 15:40:25 +08:00
下面代码压缩后就炸了。

(function(){
console.log(1);
})()

(function(){
console.log(2);
})()
crashX
2017-06-01 15:42:43 +08:00
不加分号是现代语言的趋势,LZ 从了吧。
sparkle2015
2017-06-01 15:44:08 +08:00
ruby 写多了,就不习惯加分号了。
AsherG
2017-06-01 15:44:23 +08:00
我 vs 装了 resharper,js 行尾不加分号就会被划上波浪线
Cbdy
2017-06-01 15:44:41 +08:00
@coolcoffee 有经验的程序员会这样写
;(function(){})();
wangleineo
2017-06-01 15:49:19 +08:00
因为是 python 程序员
littleylv
2017-06-01 15:56:00 +08:00
@coolcoffee #29
实际上,不加并不等于全都不加了。
实际上,规范的写法并不是“(function(){” ,而是在前面加分号“;(function(){”
SoloCompany
2017-06-01 16:04:07 +08:00
standard 是不加

反正我是加

前端高大上不断的闹革命,在他们看来,如果有两个相似的选项,那肯定会选择一个和以前不相容的选项
SoloCompany
2017-06-01 16:07:40 +08:00
多扯淡一下,kotlin 的官方推荐标准也是不加
这个我遵循了
因为毕竟是新语言

对于 js 这类背着一大堆历史包袱的老旧语言,即便 es5678 玩出了花,那还得兼容吧?一个分号可以消除所有歧义,何必费脑筋
ChefIsAwesome
2017-06-01 16:10:44 +08:00
1. 除非彻底改成缩进式的语法,不然代码里头还是有各种符号,看着还是不够清爽。
2. JS 在某些情况下不写分号会出错。为了不写分号,我们就得记着哪些场景必须要写,浪费脑细胞。这些场景写了分号之后,跟其他不写分号的地方一对比,看起来又是很奇怪。

所以我选择写分号。
doubleflower
2017-06-01 16:17:26 +08:00
知道这个很流行的 JS 强制书写风格项目吗?推荐不加分号。

https://standardjs.com/

建议用起来,搭配 flow 食用更佳。
jtsai
2017-06-01 16:22:38 +08:00
以前加 Python 写多了 而且看 微信小程序不加 就不加了

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

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

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

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

© 2021 V2EX