如果 javascript returns 什么都没有..为什么?

if function in javascript returns nothing..why?

<p id="demo"></p>
<p id="demo2"></p>
<script>
function myFunction(x, y) {
    var mess2;
    var x = document.getElementById("id1").value;
    var y = document.getElementById("id2").value;
    var z = Math.abs(+ x) + Math.abs(+ y);
        if (var z <= 2.50) {
            mess2 = "message 1";
        } else if (2.50 < var z <= 4.00) {
            mess2 = "message 2";
        } else if (4.00 < var z <= 5.00) {
            mess2 = "message 3";
        } else {
            mess2 = "message 4";
        }
    document.getElementById("demo").innerHTML = + mess2;
    }
</script>

所以这是我需要用来显示一些消息的小函数,具体取决于用户将在输入 window 中写入的输入值。当我只输出变量 z 作为数字时代码工作正常,但是当我添加这个 if 函数时它什么都不输出

有什么建议吗? 谢谢:)

变化:

document.getElementById("demo").innerHTML = + mess2;

至:

document.getElementById("demo").innerHTML += mess2;

而且你不需要一直使用'var'关键字,它仅用于声明。

检查此 fiddle: https://jsfiddle.net/8cLegxbj/

function myFunction() { // no arguments here, x and y are calculated inside function
    var mess2;
    var x = document.getElementById("id1").value;
    var y = document.getElementById("id2").value;
    var z = Math.abs(x) + Math.abs(y); // Calculate z based on x and y
    if (z <= 2.50) {          // is z <= 2.50 ?
        mess2 = "message 1";
    } else if (z <= 4.00) {   // is z <= 4.00 ? (we know it's z > 2.50)
        mess2 = "message 2";
    } else if (z <= 5.00) {   // is z <= 5.00 ? (we know it's z > 4.00)
        mess2 = "message 3";
    } else {
        mess2 = "message 4";  // is z > 5.00?
    }
    document.getElementById("demo").innerHTML = mess2; // Change html of "demo" to the message
}

看到这个JSFiddle

这是因为你在if语句中声明了变量z。 在if语句之后声明一次就可以了

我做了一些更改,请在此处查看示例 - https://jsfiddle.net/ugoxr5m8/2/

<p id="demo">

</p>

function myFunction(x, y) {
  var mess2;
  //var x = document.getElementById("id1").value;
  //var y = document.getElementById("id2").value;
  var z = Math.abs(+x) + Math.abs(+y);

  if (z <= 2.50) {
    mess2 = "message 1";
  } else if (2.50 < z <= 4.00) {
    mess2 = "message 2";
  } else if (4.00 < z <= 5.00) {
    mess2 = "message 3";
  } else {
    mess2 = "message 4";
  }

  document.getElementById("demo").innerHTML = mess2;
}

myFunction(1, 2);

检查这个:

  1. 您正在通过一些输入 ID(根据我对您的代码的理解)访问 x 和 y 的值,因此无需作为函数参数传递。

  2. 无需在 if 条件中声明 var,因为您已经在上面声明了它。

  3. if(4 < z <=5) 将始终 return true 而不管 z 值,因此您应该改用逻辑运算符。

  4. 添加了一个名为 myFunction() 的按钮。

CODEPEN

function myFunction() {
  var mess2;
  var x = document.getElementById("id1").value;
  var y = document.getElementById("id2").value;

  var z = Math.abs(+x) + Math.abs(+y);
  if (z <= 2.50) {
    mess2 = "message 1";
  } else if (2.50 < z && z <= 4.00) {
    mess2 = "message 2";
  } else if (4.00 < z && z <= 5.00) {
    mess2 = "message 3";
  } else {
    mess2 = "message 4";
  }

  document.getElementById("demo").innerHTML = mess2;
}