javascript - JavaScript中的变量和函数问题
问题描述
我对 JS 有一点问题。我想制作一个简单的脚本来计算像 X^2+X+Q 这样的二年级方程的结果。问题是我不知道如何操作变量,所以我没有得到我想要的结果。这是代码。
var a, b, c;
function input_a(a) {
a = prompt("Enter your a");
}
function input_b(b) {
b = prompt("Enter your b");
}
function input_c(c) {
c = prompt("Enter your c");
}
function calculate(a, b, c) {
var delta = (b*b) - (4*a*c);
if (delta < 0) {
document.getElementById("result").innerHTML = "Impossible, delta is < 0";
} else if (delta > 0) {
document.getElementById("result").innerHTML = delta;
} else {
document.getElementById("result").innerHTML = "ERROR";
}
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.header {
background-color: rgb(70, 69, 69);
width: 100%;
display: inline-block;
text-align: center;
padding: 30px 0px;
}
.title {
color: rgb(255, 255, 255);
}
.example {
color: white;
}
.button_wrap {
text-align: center;
background-color: rgb(230, 174, 34);
width: auto;
}
.button {
display: inline-block;
background-color: rgb(70, 69, 69);
width: auto;
height: auto;
padding: 20px;
margin: 10px 30px;
}
.start {
display: block;
background-color: rgb(70, 69, 69);
margin: 15px auto 0px auto;
padding: 20px;
}
.result_wrapper {
text-align: center;
padding-top: 100px;
background-color: rgb(187, 141, 25);
width: auto;
}
#result {
display: inline-block;
width: auto;
height: auto;
background-color: rgb(70, 69, 69);;
padding: 20px;
margin: 10px;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Equazioni</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<header class="header">
<h1 class="title">EQUATIONS</h1> <br>
<h2 class="example">X^2 +- X +- Q</h2>
</header>
<div class="button_wrap">
<button onclick="input_a()" class="button">INSERT YOUR A</button>
<button onclick="input_b()" class="button">INSERT YOUR B</button>
<button onclick="input_c()" class="button">INSERT YOUR C</button>
<button onclick="calculate()" class="start">CALCULATE</button>
</div>
<div class="result_wrapper">
<p id="result"></p>
</div>
</body>
</html>
我想问用户a、b和c,然后应用数学规则计算delta(然后我会计算X1和X2,但我还没有实现)。但由于某种原因,它不起作用。我前几天开始学习JS,所以可能这是一个愚蠢的错误,但我不知道如何修复它。我对 C++ 之类的语言非常了解,但我从未使用过 JS。
脚本实际上打印的是ERROR,所以delta必须等于0。如果是,则表示在计算它的过程中我出错了。
解决方案
该脚本实际上打印了 ERROR,因此 delta 必须等于 0。
这个结论根本不正确。它也可以是null
, 或, 或在这种情况下undefined
...... NaN
不要假设,验证:
console.log(delta);
原因是你重新声明了局部变量,而从未定义它们。
这个:
function input_a(a)
应该是这样的:
function input_a()
重复所有其他功能。这是因为拥有这些参数意味着每当您在函数中引用该变量时,您都在引用传递给它的变量,而不是全局变量。而且您不会将任何内容传递给函数,而是尝试使用全局变量。
推荐阅读
- c# - 使用 ThenInclude 的实体框架 - 从链接实体中排除某些列
- google-bigquery - 我可以在 BigQuery 中使用 CALL 从存储过程结果创建表或插入数据吗?
- javascript - Razor输入框逗号分隔转换
- mongodb - Jest mock mongoose.startSession() 抛出错误
- mysql - 如何从 4 列中找到最大的 3 列
- java - IntelliJ 中的“未使用的接收器参数”是什么意思?
- c++ - 将构建配置从 cmake 链接切换到正确版本的 boost 库
- python - pip/setuptools/packaging 使用 PEP440 中定义的版本说明符来定义多个可能的范围
- amazon-web-services - 我应该如何处理 AWS 上的公共 (TCGA) 数据?
- r - 使用R中的ggplot为变量创建与另一个变量的比例的折线图