javascript增加了误解

时间:2013-02-03 15:36:41

标签: javascript

  </!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;背后的原因,将会很有帮助。

3 个答案:

答案 0 :(得分:4)

  

如果有人能解释demop.innerHTML =“x =”+ x +“,y =”+ y;背后的原因,将会有所帮助。在此代码中

该行代码不会增加任何内容,在该行中+是字符串连接运算符,而不是数字加法运算符。它用于构建字符串(它不会更改xy),然后将其分配给demoP.innerHTML,后者用该字符串的内容替换DOM元素的内容。

初学者有点难以理解的是这一行:

var x=++y;

这有三件事:

  1. 它在当前范围(x)中声明了一个名为var的变量。

  2. 它会增加y

  3. 的值
  4. 它将递增的值分配给x

  5. 因此,xy都会以6结束,因为增量发生在之前 y的值用于初始化{ {1}}。这称为“前缀增量”。 “Pre”因为它发生在我们使用值之前。

    与大多数从B派生主语法的语言(如C,C ++,Java,C#,JavaScript等等)一样,还有一个“后缀”增量:

    x

    “发布”,因为我们在之后使用该值增加。如果该行如上所示,var x = y++; 将获得x5的旧值),y将获得y

答案 1 :(得分:1)

demoP.innerHTML = "x = " + x + ", y = " + y;

这将设置由demoP标识的元素的HTML。 +会将字符串和数字连接成一个字符串,该字符串将是demoP的HTML。

答案 2 :(得分:0)

单击“尝试”按钮时,将执行函数myFunction(),并将标识为demo的元素内的HTML更改为:x = 6,y = 6