2016-07-21 35 views
1

毎回値を1ずつインクリメントしようとしていますが、機能していません。私の変数currentValueは私に0を期待通りに与えますが、私がvar newValue = currentValue ++;を使ってインクリメントしようとすると、それでも私に0が与えられます。Javascriptで更新値がインクリメントしない

function updateClicks(e, maxValue) { 
    var buttonClicked = e.target; 
    addClass("clicked", buttonClicked); 
    var counterBox = buttonClicked.nextElementSibling; 

    var currentValue = buttonClicked.value; 
    console.log(currentValue); 

    var newValue = currentValue++; 
    console.log(newValue); 
} 

私はここで間違っていますか?

+2

'newValueに= currentValueは++'効果的に行い使用する必要があります: 'newValueに= currentValueは、 currentValue = currentValue + 1; '。 'newValue = ++ currentValue;'を試すか、実際に 'currentValue'を変更しない場合は' newValue = currentValue + 1'だけを試してください。 –

答えて

2

あなたが好きpre increment演算子を使用する必要がインクリメントされた値に影響する場合:currentValue++(ポストインクリメント)するので

var newValue = ++currentValue; 

currentValueをインクリメントしますがnewValue変数に代入した後になります。

  • pre-increment:(++currentValue)意志がcurrentValueを返し、次いでcurrentValueの値に1を加算します。
  • post-increment:(currentValue++)はcurrentValueを返し、1を追加します。

これが役に立ちます。

var currentValue = 0; 
 
console.log('Increment using pre increment : '+(++currentValue)); 
 
console.log('pre increment return : '+currentValue); 
 

 
console.log('-----------------------------------'); 
 

 
var currentValue = 0; 
 
console.log('Increment using post increment : '+(currentValue++)); 
 
console.log('post increment return : '+currentValue);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

試してみてください。

var newValue = ++currentValue; 
+0

少し説明すれば助かります。問題は何で、どのように役立ちますか? – showdev

+0

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。また、コードと説明の両方の可読性が低下するため、説明的なコメントを使用してコードを混乱させないようにしてください。 – FrankerZ

2

それは初めてあなたに0を与えるだろう。 なぜですか?
++ 演算子 - 値を返します。次にが値をインクリメントします。 例

var a = 4; 
var b = a++; // Here it assigns 4 to b, then increments it's value 
console.log(a); // 5 
console.log(b); // 4 

あなたはpre incrementフォームが

var a = 4; 
    var b = ++a; // Here it increments it's value then assigns it to b 
    console.log(a); // 5 
    console.log(b); // 5 
関連する問題