Javascript 未捕获引用错误:赋值中的左侧无效
我开始学习Javascript,我试图创建一个计算器,它只需乘以2个数字,我在浏览器控制台中遇到了这个错误。 有人能帮忙吗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;}<
<!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个字符串的情况下自动执行,但我需要它以这种方式工作。
}
}
==
是用于平等比较的,你知道吗?我错了,我以为是因为||