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)
})
本文探讨了JavaScript中`i++`和`i+1`的区别,尤其是在递归函数中,强调了使用`i+1`而非`i++`以避免死循环。通过实例说明了在处理文件系统目录时的正确用法。

被折叠的 条评论
为什么被折叠?



