Javascript 未捕获引用错误:赋值中的左侧无效

Javascript 未捕获引用错误:赋值中的左侧无效,javascript,if-statement,syntax-error,Javascript,If Statement,Syntax Error,我开始学习Javascript,我试图创建一个计算器,它只需乘以2个数字,我在浏览器控制台中遇到了这个错误。 有人能帮忙吗 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Calc</title> <style>#result{position: relative; top: 5px;}<

我开始学习Javascript,我试图创建一个计算器,它只需乘以2个数字,我在浏览器控制台中遇到了这个错误。 有人能帮忙吗

   <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Calc</title>
    <style>#result{position: relative; top: 5px;}</style>
</head>
<body>
    <input type="number" id="first"> *
    <input type="number" id="second">
    <br>
    <input type="submit" id="result" value="Check out" onclick="res()"></input> <span id="span"></span> 
    <script>
        function res() {
            var a = document.getElementById("first").value;
            var b = document.getElementById("second").value;
            var span = document.getElementById("span");
            if(a != 0 && b !=0) {
                span.innerHTML = a * b;
            }
            if(a = 0 ||  b = 0) {
                span.innerHTML = "0"; // I know browser can do it automatically without 21 and 22 strings but i need that it works this way.  
            }
        }
    </script>
</body>
</html>

计算
#结果{位置:相对;顶部:5px;}
*

函数res(){ var a=document.getElementById(“第一”)值; var b=document.getElementById(“第二”)值; var span=document.getElementById(“span”); 如果(a!=0&&b!=0){ span.innerHTML=a*b; } 如果(a=0 | | b=0){ span.innerHTML=“0”//我知道浏览器可以在不使用21和22个字符串的情况下自动执行,但我需要它以这种方式工作。 } }
首先,如果你想用文本输入做任何数学运算,你必须把它们转换成一个数字。您可以使用
parseInt(num,10)
parseFloat(num)

其次,在其中一个if语句中,实际上并不是比较变量
a
b
,而是将
0
赋值给它们。使用两个等号来比较变量

第三,您可以使用
isNaN(num)
检查它们是否是数字。这样做将消除第一个if语句

函数res(){
var a=parseFloat(document.getElementById(“first”).value);
var b=parseFloat(document.getElementById(“second”).value);
var span=document.getElementById(“span”);
if(isNaN(a)| | isNaN(b)){
span.innerHTML=“0”;
}
否则{
span.innerHTML=a*b;
}
}
*


在这里检查您更正的代码

<html>
<head>

    <title>Calc</title>
    <style>#result{position: relative; top: 5px;}</style>
</head>
<body>
    <input type="number" id="first"> *
    <input type="number" id="second">
    <br>
    <input type="submit" id="result" value="Check out" onclick="res()"></input> <span id="span"></span> 
    <script>
        function res() {
            var a = document.getElementById("first").value;
            var b = document.getElementById("second").value;
            var span = document.getElementById("span");
            if(a != 0 && b !=0) {
                span.innerHTML = a * b;
            }
            if(a == 0 ||  b == 0) {
                span.innerHTML = "0"; // I know browser can do it automatically without 21 and 22 strings but i need that it works this way.  
            }
        }
    </script>
</body>
</html>

计算
#结果{位置:相对;顶部:5px;}
*

函数res(){ var a=document.getElementById(“第一”)值; var b=document.getElementById(“第二”)值; var span=document.getElementById(“span”); 如果(a!=0&&b!=0){ span.innerHTML=a*b; } 如果(a==0 | | b==0){ span.innerHTML=“0”//我知道浏览器可以在不使用21和22个字符串的情况下自动执行,但我需要它以这种方式工作。 } }
==
是用于平等比较的,你知道吗?我错了,我以为是因为||