js不写分号时遇到的bug

使用ES6语法进行值交换时使用了类似下面的代码,

var t = 2
var r = 1
[r,t] = [t,r]
console.log(r,t)

你是不是以为结果会是2 1
实际的输出结果是:[2, undefined] 2
原来就算是用回车换行,方括号还是会和var r = 1合并到一行,变成var r = 1[r,t] = [t,r],所以我们需要在方括号前加分号防止它和上一句代码合并。

我还不清楚错误的结果是如何生成的,欢迎大家在评论中多多指教~

你可能感兴趣的:(js不写分号时遇到的bug)