2016-04-22 15 views
2

私は現在、javascriptから別の言語に関数を変換しています。私はjavascriptの経験がほとんどありません。 私は次のコードに関する疑問を、現在午前:Javascript:どのように++演算子の仕事ですか?

msi = pii.charCodeAt(Y++) << 24 | pii.charCodeAt(Y++) << 16 

Y ++は、それが呼ばれるたびに変数を増加させ(およびグローバル変数の値を変更する)でしょうか? 等それは、ちょうどincreate手段に相当する:それは、元の(非増分)値を提供する式で使用される

Y+1 

Regrads

+2

JavaScriptの '++'演算子は、すべてのCファミリ言語と同じように動作します。変数の前に*ある場合は変数を最初にインクリメントし、値は新しいインクリメントされた値です。変数の後ろに*ある場合、式の値は*プリインクリメント*値ですが、その後変数はインクリメントされます。 – Pointy

+0

それは 'Y + 1'のようではありません...' Y + 1'はインクリメントされた値を評価しますが、 'Y'の値は影響を受けません... – Rayon

答えて

2

Y++は、いずれかによってYの値を増加させますしかし、あなたのコードはYを2回インクリメントすることに注意してください。

+0

そして初めてYになり、 Y + 1になります。 –

+0

説明ありがとうございます:) – kekit

1
var Y = 1; 
var Z = Y++; // Z will be 1 and Y will be 2 !!! after this line is executed 

これはjavascriptのための具体的なないです。

0

Y = Y+1のようなインクリメント演算子は、通常のインクリメントとは多少異なります。JavaScriptのポストインクリメント演算子とプリインクリメント演算子は、C、C++、Javaなどと同様に動作します。どのように彼らはここで実際に作業を行うことは簡単なイントロです:

Z = Y++ZYのストア値を意味し、その後Z = ++Y

に対し

1で Yの値をインクリメントして1で Yのインクリメント値を意味し、その後、 Z(更新された値)に格納してください。

関連する問題