</!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;
背后的原因,将会很有帮助。
答案 0 :(得分:4)
如果有人能解释demop.innerHTML =“x =”+ x +“,y =”+ y;背后的原因,将会有所帮助。在此代码中
该行代码不会增加任何内容,在该行中+
是字符串连接运算符,而不是数字加法运算符。它用于构建字符串(它不会更改x
或y
),然后将其分配给demoP.innerHTML
,后者用该字符串的内容替换DOM元素的内容。
初学者有点难以理解的是这一行:
var x=++y;
这有三件事:
它在当前范围(x
)中声明了一个名为var
的变量。
它会增加y
。
它将递增的值分配给x
。
因此,x
和y
都会以6
结束,因为增量发生在之前 y
的值用于初始化{ {1}}。这称为“前缀增量”。 “Pre”因为它发生在我们使用值之前。
与大多数从B派生主语法的语言(如C,C ++,Java,C#,JavaScript等等)一样,还有一个“后缀”增量:
x
“发布”,因为我们在之后使用该值增加。如果该行如上所示,var x = y++;
将获得x
(5
的旧值),y
将获得y
。
答案 1 :(得分:1)
demoP.innerHTML = "x = " + x + ", y = " + y;
这将设置由demoP
标识的元素的HTML。 +
会将字符串和数字连接成一个字符串,该字符串将是demoP
的HTML。
答案 2 :(得分:0)
单击“尝试”按钮时,将执行函数myFunction()
,并将标识为demo
的元素内的HTML更改为:x = 6,y = 6