sort=>( arr, left=0, right=arr.length-1){
let i=0;
let j=right ;
const baseval=arr[right];
sort (arr, i+1, j-1);
}
都说const定义的变量一旦定义了,就无法改变值。那么在递归中呢?
因为递归的原理是,每次调用自己,都添加一个新函数进栈,这个函数执行完毕就直接弹出栈,所以每次递归调用自己的时候,都是执行新函数的过程,所以每个baseval的作用域都是独立的函数,所以不是同一个作用域,const的本意是:变量第一次定义并赋值后不能再更改,而每次执行函数都是在重新定义变量baseval的过程,每次定义相对于本函数都是第一次。
所以在这个递归过程中,每次的baseval都是变化的。