非常新的,几乎不了解的功能。
以下是我的问题的一个例子:
function getx() {
x = 3;
}
function gety() {
y = 2;
}
getx();
gety();
document.write("The sum of x and y is " + x + y);
OUTPUT: The sum of x and y is 32
我想知道我怎么能这样做x + y = 5而不是32.显然3 + 2不是32,有人可以向我解释我如何输出正确的答案吗?
答案 0 :(得分:2)
您在添加操作之前将字符串与x
连接起来。因此,您需要使用括号包装Math运算,以避免字符串连接。
function getx() {
x = 3;
}
function gety() {
y = 2;
}
getx();
gety();
document.write("The sum of x and y is " + (x + y));

答案 1 :(得分:0)
你的函数getx()和gety()没有返回任何值,因为你没有return语句。
通过按照您的方式调用函数,您将创建两个全局变量:x和y,并分别初始化为3和2。
您应避免在此容量中使用全局变量。您的全局变量(或函数)可以覆盖窗口变量(或函数)。任何函数(包括窗口对象)都可以覆盖全局变量和函数。 您的变量应该用var声明。
除非有特殊说明,否则js变量不是强类型的,并且由于在将变量一起添加之前使用了连接运算符,因此它将它们视为字符串,这就是为什么连接将3和2放在一起的原因。
如果您将代码更改为此类代码,则应该完成您要实现的目标。
function getx() {
var x = 3;
return x;
}
function gety() {
var y = 2;
return y;
}
document.write("The sum of x and y is " + (gety() + getx()));