关于es6变量解构赋值的一个问题

function exchange1 (arr, i, j) {
    [arr[i], arr[j]] = [arr[j], arr[i]]
    return arr   
}

function exchange2 (arr) {
    const i = 1
    const j = 3
    [arr[i], arr[j]] = [arr[j], arr[i]]
    return arr
}
var arr1 = [0,1,2,3,4,5,6]
var arr2 = [0,1,2,3,4,5,6]
console.log(exchange1(arr1, 1, 3))
console.log(exchange2(arr2))

exchange1执行没问题,exchange2报错说i,j未定义
觉得是暂存死区的问题,难道是[arr[i], arr[j]] = [arr[j], arr[i]]在变量赋值之前就执行??
搞不懂

猜你喜欢

转载自blog.csdn.net/dongdaxiaopenyou/article/details/84552376