次の関数が異なる結果をもたらす理由を誰かが説明できますか? 最初のものはうまくいかないようですが、2番目のものはうまくいきます。+=1 と ++ が同じことをしたと思っていたので、私は困惑しています。
(このコードを実際に使用するつもりはありません。違いを示すだけです)。
/*function 1*/
function incrementIfZero1(base,element) {
if (element == 0) {
return base++;
}
else
{
return base;
}
};
/*function 2*/
function incrementIfZero2(base,element) {
if (element == 0) {
return base+=1;
}
else
{
return base;
}
};
incrementIfZero1(1,0) /* -> 1*/
incrementIfZero2(1,0) /* -> 2*/
どんな助けでも大歓迎です。
ありがとう、
ロビン
[編集:]
返信ありがとうございます。今では意味がありません。次のステートメントも試しましたが、関数 1 と同じ結果になりました。
return (base++)
これが関数2と同じ結果をもたらさないことに今驚いています-私は、括弧がそれを「強制的に」評価してから返すことを期待していたでしょう。これが当てはまらない理由は何ですか?