javascript中除法为零的验证

javascript中除法为零的验证,javascript,Javascript,我正在尝试执行计算器操作,根据输入值和运算符显示结果。我对除以0的验证感到震惊,我无法在另一个函数中显示结果。请有人能帮我 function calCaulation(e) { var x = document.getElementById("first").value; var y = document.getElementById("second").value; var z = document.getElementById("oper").value; var a = ""; if (

我正在尝试执行计算器操作,根据输入值和运算符显示结果。我对除以0的验证感到震惊,我无法在另一个函数中显示结果。请有人能帮我

function calCaulation(e) {
var x = document.getElementById("first").value;
var y = document.getElementById("second").value;
var z = document.getElementById("oper").value;
var a = "";

if ((isNaN(x) || x == "") || (isNaN(y) || y == "")) {
a = "Sum:Please enter the valid Number";
}
if (z == "/" && y == 0) {
a = "Divide By Zero Error";
}
return a;
} 
else {
var x = parseFloat(document.getElementById("first").value);
var y = parseFloat(document.getElementById("second").value);
switch (z) {
case ("+"):
  a = "Sum:" + ((x + y).toFixed(2));
  break;
case ("-"):
  a = "Sub:" + ((x - y).toFixed(2));
  break;
case ("*"):
  a = "Mul:" + ((x * y).toFixed(2));
  break;
case ("/"):
  a = "Div:" + ((x / y).toFixed(2));
  break;
default:
  a = "Invalid Operator";
}
return a;
}
}

你有一个括号和
else
子句太多了

请参阅此处以了解一个工作的JSFIDLE。

编辑:此外,错误检查后的return语句将在实际代码执行之前离开函数,我将
return a
移动到每个
if
中以使其工作

您的新代码:

function calCaulation(e) {
    var x = document.getElementById("first").value;
    var y = document.getElementById("second").value;
    var z = document.getElementById("oper").value;
    var a = "";

    if ((isNaN(x) || x == "") || (isNaN(y) || y == "")) {
        a = "Sum:Please enter the valid Number";
        return a;
    }
    if (z == "/" && y == 0) {
        a = "Divide By Zero Error";
        return a;
    }


    var x = parseFloat(x);
    var y = parseFloat(y);
    switch (z) {
        case ("+"):
            a = "Sum:" + ((x + y).toFixed(2));
            break;
        case ("-"):
            a = "Sub:" + ((x - y).toFixed(2));
            break;
        case ("*"):
            a = "Mul:" + ((x * y).toFixed(2));
            break;
        case ("/"):
            a = "Div:" + ((x / y).toFixed(2));
            break;
        default:
            a = "Invalid Operator";
    }
    return a;

}

我看到
返回a后有一个括号语句。在代码中,在else之前关闭花括号“{”是无效的。2.{var x=parseFloat(document.getElementById(“first”).value);var y=parseFloat(document.getElementById(“second”).value);}两次不必要的赋值。空字符串为NaN。因此
if((isNaN(x)||x==”)|(isNaN(y)| y==”){
变成
if(isNaN(x)| isNaN(y)){
。它实际上不工作,你可以在plunker中查看