ES6使用解构赋值方法给交换数组元素报错

平时直接用es6的方法交换数据都没有问题,今天报错,一直不理解为啥会报错。
代码这么写的:

maxHeap(arr, arr.length - i)      
 [arr[0], arr[arr.length - 1 - i]] = [arr[arr.length - 1 - i], arr[0]]
image.png

原来是不加分号就不会识别解构赋值那行代码,因为它前面有一行代码。JavaScript还是需要分号的,每一个分号都会让引擎来解析当前行。
加上分号,解决!

         maxHeap(arr, arr.length - i);
        // 使用es6解构赋值时需要在上一行加分号,否则会报错。
        [arr[0], arr[arr.length - 1 - i]] = [arr[arr.length - 1 - i], arr[0]];

你可能感兴趣的:(ES6使用解构赋值方法给交换数组元素报错)