i++和i+1的区别

本文探讨了JavaScript中`i++`和`i+1`的区别,尤其是在递归函数中,强调了使用`i+1`而非`i++`以避免死循环。通过实例说明了在处理文件系统目录时的正确用法。
摘要由CSDN通过智能技术生成

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)
})

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值