为什么这个简单的JavaScript程序不能工作?
我试图从用户输入的数字数组中显示最小值、最大值和平均值 浏览器的控制台告诉我min和max不是函数 显示错误: 未捕获类型错误:max不是函数 在HTMLInputElement.onclick numbers.html:7 onclick@numbers.html:7 只有均值函数起作用,其他函数不起作用。。。为什么 var i; var num=新数组; window.alert输入10个数字:; 对于i=0;i<10;i++{ num[i]=parseIntpromptnum; } 函数最大值{ var max=num[0]; 对于i=0;i<10;i++{ 如果max为什么这个简单的JavaScript程序不能工作?,javascript,html,Javascript,Html,我试图从用户输入的数字数组中显示最小值、最大值和平均值 浏览器的控制台告诉我min和max不是函数 显示错误: 未捕获类型错误:max不是函数 在HTMLInputElement.onclick numbers.html:7 onclick@numbers.html:7 只有均值函数起作用,其他函数不起作用。。。为什么 var i; var num=新数组; window.alert输入10个数字:; 对于i=0;i
尝试以不同的方式调用函数,例如,可以改为调用max函数max,并确保在html onclick处理程序中将其更改为max。当您使用var声明变量时,它是全局声明的,这是您应该避免这样做并使用let和const的一个很好的理由。 您的代码应该如下所示:
var i;
var num = new Array();
window.alert('enter 10 numbers:');
for (i = 0; i < 10; i++) {
num[i] = parseInt(prompt('num'));
}
var max;
var min;
function maximum() {
max = num[0];
for (i = 0; i < 10; i++) {
if (max < num[i]) {
max = num[i];
}
}
window.alert('the max is: ' + max);
}
function minimum() {
min = num[0];
for (i = 0; i < 10; i++) {
if (min > num[i]) {
min = num[i];
}
}
window.alert('the min is: ' + min);
}
function mean() {
var m = (max + min) / 2;
window.alert('mean : ' + m);
}
您的html:
<input type="button" value="max" onclick="maximum()"><br>
<input type="button" value="min" onclick="minimum()"><br>
<input type="button" value="mean" onclick="mean()"><br>
尝试以不同的方式调用函数,例如,可以改为调用max函数max,并确保在html onclick处理程序中将其更改为max。当您使用var声明变量时,它是全局声明的,这是您应该避免这样做并使用let和const的一个很好的理由。 您的代码应该如下所示:
var i;
var num = new Array();
window.alert('enter 10 numbers:');
for (i = 0; i < 10; i++) {
num[i] = parseInt(prompt('num'));
}
var max;
var min;
function maximum() {
max = num[0];
for (i = 0; i < 10; i++) {
if (max < num[i]) {
max = num[i];
}
}
window.alert('the max is: ' + max);
}
function minimum() {
min = num[0];
for (i = 0; i < 10; i++) {
if (min > num[i]) {
min = num[i];
}
}
window.alert('the min is: ' + min);
}
function mean() {
var m = (max + min) / 2;
window.alert('mean : ' + m);
}
您的html:
<input type="button" value="max" onclick="maximum()"><br>
<input type="button" value="min" onclick="minimum()"><br>
<input type="button" value="mean" onclick="mean()"><br>
Min和max是保留名称将函数名称更改为_Min _maxMin和max是保留名称将函数名称更改为_Min _max重复。像onclick这样的内联事件处理程序是。它们是记录事件的一种方式。总是这样。这就是.min和max分别引用字符串和的原因之一。这不是您问题的答案,但值得一提的是,无论您在哪里使用var,都应该使用let。我会让你从兔子洞里找出原因。@SebastianSimon谢谢你的解释,但同时也有点困惑。。。它将max等函数视为输入的属性。“刹车不意味着什么吗?”莱昂纳多。这很令人困惑,因为您使用的是传统的DOM 0事件,而不是现代的事件侦听器。括号试图将值作为函数调用;它们不会将值转换为函数,也不会“选择”名为“max”或“min”的函数 — 最小值和最大值不引用的onclick.Duplicate中的任何函数。像onclick这样的内联事件处理程序是。它们是记录事件的一种方式。总是这样。这就是.min和max分别引用字符串和的原因之一。这不是您问题的答案,但值得一提的是,无论您在哪里使用var,都应该使用let。我会让你从兔子洞里找出原因。@SebastianSimon谢谢你的解释,但同时也有点困惑。。。它将max等函数视为输入的属性。“刹车不意味着什么吗?”莱昂纳多。这很令人困惑,因为您使用的是传统的DOM 0事件,而不是现代的事件侦听器。括号试图将值作为函数调用;它们不会将值转换为函数,也不会“选择”名为“max”或“min”的函数 — 最小值和最大值不引用onclick中的任何函数。