JS 不写分号会出 BUG 的。。。

2018-09-19 11:13:03 +08:00
 fundebug
console.log("Hello, World!")
[1,2,3].map(i=>console.log(i))

报错"cannot read property '3' of undefined"

那大家还写不写分号呢? https://blog.fundebug.com/2018/09/18/js-semicolon-bug/

13756 次点击
所在节点    JavaScript
97 条回复
Justin13
2018-09-19 11:17:30 +08:00
个人写,但是这些不写分号的 bug 都可以绕过去。
sohoorc
2018-09-19 11:19:50 +08:00
不写分号在错误定位上也有问题。
Vhc001
2018-09-19 11:20:25 +08:00
看到 尤雨溪 到处喷 js 结尾写分号的人,我都不敢和别人说我我写 js 也在结尾写分号
maichael
2018-09-19 11:25:25 +08:00
能不写就不写,交给 linter 和 formatter 解决,基本没出过问题。
mars0prince
2018-09-19 11:25:43 +08:00
不写分号会有语法 BUG 的
anjianshi
2018-09-19 11:26:01 +08:00
用 eslint 等工具,在这种情况下是会提示你的。

所以不写分号,要么自己记住并注意这几个特殊情况,要么养成好习惯,给编辑器加一个默认开启的 eslint,配置一些基本的 rule 即可,这样还能避免其他一些手误写错的代码。

要是不想开 eslint,也怕记不住这些特殊情况,那就写分号。
webxh6
2018-09-19 11:30:52 +08:00
想写就写,项目能写出来,代码能够优化好。
就看你自己怎么对待啦
xycool
2018-09-19 11:38:39 +08:00
我 tslint 的规则是不写分号
TomatoYuyuko
2018-09-19 11:40:02 +08:00
已经养成习惯写了,也不费事,看到光屁股代码浑身难受
zhzer
2018-09-19 11:41:16 +08:00
不写分号在拼接代码的时候最容易报错,但是你不用 lint 么……
xenme
2018-09-19 11:49:58 +08:00
顺道问个问题,像 webpack build 之后的代码很多都用逗号,debug 的时候如何去方便的 debug
lxrmido
2018-09-19 11:53:11 +08:00
@xenme
SourceMap
xenme
2018-09-19 11:54:53 +08:00
@lxrmido 没有 sourcemap

类似上面不写分号多行合并一行的,有啥黑科技或者小技巧么
wu67
2018-09-19 11:56:55 +08:00
不写, 交给 webpack 那一套来解决就行了, 反正 npm 一跑, 最后得到的代码还是会给加上分号
Sparetire
2018-09-19 11:58:52 +08:00
不写可能出 bug,写了也可能出 bug,由于自动分号插入机制的存在,最好是在工具链层面处理才是正道,至于写不写看个人喜好
neverandy
2018-09-19 11:59:06 +08:00
还是看个人习惯吧。两种方式都不应该有什么优越感。不写分号带来的问题,也有解决的方案。我个人还是写分号的,写习惯了。
SuperMild
2018-09-19 11:59:13 +08:00
不写分号要用 linter,用 linter 是比写不写分号更重要的好习惯。就算写分号也要用 linter。
kingwl
2018-09-19 12:01:12 +08:00
明明是 feature🤷🏻‍♂️
98jiang
2018-09-19 12:02:32 +08:00
写 java 习惯加 2333
miyalee
2018-09-19 12:02:55 +08:00
不写,靠插件自动补齐

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

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

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

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

© 2021 V2EX