当调用 'hypotenuse' 函数时,'x' 的值从 1 更改。修复它,使 'x' 在全局范围内仍然为 1。
var x = 1;
var y = 1;
function hypotenuse(a , b) {
var cSquared = a * a + b * b;
x = Math.sqrt(cSquared);
return x;
}
hypotenuse(x, y);
当调用 'hypotenuse' 函数时,'x' 的值从 1 更改。修复它,使 'x' 在全局范围内仍然为 1。
var x = 1;
var y = 1;
function hypotenuse(a , b) {
var cSquared = a * a + b * b;
x = Math.sqrt(cSquared);
return x;
}
hypotenuse(x, y);
要做到这一点,您需要做的就是var
在函数中重新声明 x 变量。这将x
在函数范围内声明变量,而原始的全局范围x
变量保持不变:
var x = 1;
var y = 1;
function hypotenuse(a , b) {
var cSquared = a * a + b * b,
x = Math.sqrt(cSquared);
return x;
}
hypotenuse(x, y);
或者,使用您最初采用的代码样式(拆分var
声明):
var x = 1;
var y = 1;
function hypotenuse(a , b) {
var cSquared = a * a + b * b;
var x = Math.sqrt(cSquared);
return x;
}
hypotenuse(x, y);
有关此处发生的事情的更多详细信息,请阅读javascript 范围
尝试这个:
var x = 1;
var y = 1;
function hypotenuse(a, b) {
var cSquared = a * a + b * b;
var x = Math.sqrt(cSquared);
return x;
}
//console.log(hypotenuse(x, y));
//console.log('x = ' + x);