震惊,JS不加分号会造成错误!?
在之前的工作中,我遇到了一个奇怪的问题。明明在语法上没有问题,找同事也看了,但是程序依旧会产生奇怪的错误。最后通过一步一步断点,定为了错误位置,才找到了造成这个错误的原因———在一个不需要分号的语言中,句末不加分号居然报错了。
不卖关子了,这个错误是多返回值函数造成了对上一句值的影响。下面举个例子:
function func() { |
运行的结果将会是这样:
a is :1,2
b is :0 c is :0
很容易看到,我们函数的返回值给了上一行的a。这是因为我们的编译器将代码认为了:
let a = 3 ,[b, c] = func(); |
避免这种情况,还是要多加分号吧——虽然它并不会报错。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 崎径 其镜!



