'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);