Javascript不能返回值

Javascript cannot return values

本文关键字:返回值 不能 Javascript      更新时间:2023-09-26

我想从这些函数中获得值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);