0
  </!DOCTYPE html>
</html>
</body>

<p>Given that y=5, calculate x=++y, and display the result.</p>
<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction()
{
var y=5;
var x=++y;
var demoP=document.getElementById("demo")
demoP.innerHTML="x=" + x + ", y=" + y;
}
</script>

<p><strong>Note:</strong> Both variables, x and y, are affected.</p>
</body>
</html>*/

明らかに、私は初心者ですが、他に尋ねる人は誰もいません。demop.innerHTML="x=" + x + ", y=" +y;誰かがこのコードの背後にある理由を説明できれば助かります。

4

3 に答える 3

4

誰かがdemop.innerHTML="x =" + x + "、y ="+y;の背後にある理由を説明できれば助かります。このコードでは

そのコード行は何もインクリメントしません。その行で+は、は文字列連結演算子であり、数値加算演算子ではありません。これは、文字列を構築するために使用され(またはは変更されませんxy、次にに割り当てられdemoP.innerHTMLます。これにより、DOM要素のコンテンツがその文字列のコンテンツに置き換えられます。

初心者にとって理解するのが少し難しい行はこれです:

var x=++y;

それは3つのことをします:

  1. x現在のスコープ()で呼び出される変数を宣言しますvar

  2. の値をインクリメントしますy

  3. インクリメントされた値をに割り当てますx

したがって、の値が初期化に使用されるに増分が発生するため、との両方xがでy終わります。これは「プレフィックスインクリメント」と呼ばれます。「Pre」は、値を何かに使用する前に発生するためです。6yx

Bからメイン構文を派生させるほとんどの言語(つまり、C、C ++、Java、C#、JavaScript、およびその他の多くの言語)と同様に、「接尾辞」の増分もあります。

var x = y++;

値を使用した後にインクリメントするため、「投稿」。行が上記のとおりである場合、(の古い値)をx取得し、を取得します。5yy6

于 2013-02-03T15:38:03.113 に答える
1
demoP.innerHTML = "x = " + x + ", y = " + y;

これにより、で識別される要素のHTMLが設定されdemoPます。+文字列と数値を1つの文字列に連結します。これはのHTMLになりますdemoP

于 2013-02-03T15:38:55.387 に答える
0

[試してみる]ボタンをクリックすると、関数myFunction()が実行され、IDを持つ要素内のHTMLがdemox = 6、y=6に変更されます。

于 2013-02-03T15:39:45.293 に答える