i++是在使用完变量后再进行i+1的操作;i+1本身不对i 进行算值操作;
// i++
let i = 0;
console.log(i++) // 输出0
console.log(i) // 输出1
// i+1 本身不对i 进行算值操作
let i = 0;
console.log(i+1) // 输出1
console.log(i) // 输出0
当在没有实参,只有形参的函数中,不使用i++ 应使用i+1;
//递归函数 (node.js中 读取wwwroot文件下所有的目录,并放入一个数组中)
let arr = [];
fs.readdir(path, (err, files) => {
if (err) {
console.log(err);
return;
}
//1.改造成递归函数
(function getDir(i){
console.log(i)
if(i==files.length){
console.log(arr);
return
}
fs.stat(`${path}/${files[i]}`,(error,stats)=>{
if(error){
console.log(error);
return;
}
if(stats.isDirectory()){
arr.push(files[i])
}
//getDir(i+1)
//此时如果使用 i++
getDir(i++) //则会死循环 因为每次传给下次方法使用的值一直为0;
})
})(0)
})