Javascript再帰では少し奇妙な動作が発生します。私のコードIFとWHILEを使用したJavaScriptの再帰
var temp1 = function(maxLength,accNumber) {
if(accNumber.length < maxLength)
{
accNumber = '0'+accNumber;
temp1(maxLength,accNumber);
}
return accNumber;
};
console.log(temp1(5,"23"));
だから、ここで私が期待されていない「00023」が、そのは「023」を与えるような出力を期待しています。
whileループと同じコードが期待された出力を得ています。なぜ私は理解していない。予想通り、私に出力 "00023" を与える
var temp1 = function(maxLength,accNumber) {
while(accNumber.length < maxLength)
{
accNumber = '0'+accNumber;
temp1(maxLength,accNumber);
}
return accNumber;
};
console.log(temp1(5,"23"));
。
@AgataBは、あなたがそれを試してみましたか? –
はい、あなたの編集の前に。 – AgataB
@AgataB私の編集は私の答えの論理とは関係がなく、私の答えがなぜ機能するのかの説明が追加されました。 –