Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript无法返回值_Javascript - Fatal编程技术网

Javascript无法返回值

Javascript无法返回值,javascript,Javascript,我想从这些函数中得到a,b,c的值,并在我的总数中使用它们。我已尝试返回值,但不起作用。当我创建全局变量时,total总是使用原始全局变量,而不是函数中的全局变量 function d1() { var a = document.getElementById("s1").value; document.getElementById("d1").innerHTML = (2 * a).toFixed(2); return a; } function d2() { var b =

我想从这些函数中得到a,b,c的值,并在我的总数中使用它们。我已尝试返回值,但不起作用。当我创建全局变量时,total总是使用原始全局变量,而不是函数中的全局变量

function d1() {
  var a = document.getElementById("s1").value;
  document.getElementById("d1").innerHTML = (2 * a).toFixed(2);
  return a;
}

function d2() {
  var b = document.getElementById("s2").value;
  document.getElementById("d2").innerHTML = (3 * b).toFixed(2);
  return b;
}

function d3() {
  var c = document.getElementById("s3").value;
  document.getElementById("d3").innerHTML = (4 * c).toFixed(2);
  return c;
}

var total = a + b + c;
document.getElementById("total").innerHTML = total.toFixed(2);
我想应该是这样

var total = d1() + d2() + d3();

因为变量a、b和c是函数的局部变量,它们属于这些函数的作用域。然而,最大的问题是您根本不调用函数,因此即使使用全局变量,您的a、b、c也将是未定义的。

a、b和c分别是d1、d2和d3中的局部变量。因此,您不能像您尝试的那样直接在其范围之外使用它们

有多种方法可以达到你想要的结果。最简单的

function d1() {
            var a = document.getElementById("s1").value;
            document.getElementById("d1").innerHTML = (2*a).toFixed(2);
            return a;
            }

            function d2() {
            var b = document.getElementById("s2").value;
            document.getElementById("d2").innerHTML = (3*b).toFixed(2);
            return b;
            }

            function d3() {                 
            var c = document.getElementById("s3").value;
            document.getElementById("d3").innerHTML = (4*c).toFixed(2);
            return c;
            }

            **var total = d1() + d2() + d3();**
            document.getElementById("total").innerHTML = total.toFixed(2);

变量的值永远不会被操纵…a、b和c在它们的函数之外是不可见的。您应该执行
var total=d1()+d2()+d3()
您没有在这里的代码中调用这些函数。尝试
var total=d1()+d2()+d3()如果对您有帮助,请接受我的建议。