2

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

2 に答える 2

3

これを実現するために必要なことは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 スコープを参照してください。

于 2013-11-10T14:37:53.317 に答える
1

これを試して:

  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);
于 2013-11-10T14:42:24.193 に答える