Javascript 一直在找NaN,然后就迷路了
我正在定义一个函数,它以三个数字作为参数,并返回其中最大的一个 这是我的密码:Javascript 一直在找NaN,然后就迷路了,javascript,arrays,variables,nan,Javascript,Arrays,Variables,Nan,我正在定义一个函数,它以三个数字作为参数,并返回其中最大的一个 这是我的密码: var instructions = alert("Choose a set of numbers to input for the computer to determine which value is the largest"); var inputOne = prompt("Please input your first desired value"); var inputTwo = prompt("Ple
var instructions = alert("Choose a set of numbers to input for the computer to determine which value is the largest");
var inputOne = prompt("Please input your first desired value");
var inputTwo = prompt("Please input your second desired value");
// THIS ARRAY STORES THE VALUES OF inputOne && inputTwo
var maxInput = Math.max([inputOne, inputTwo]);
var inputThree = prompt("Please input your third desired value");
// THIS WILL COMPARE BETWEEN THE inputThree && THE MAX INPUT OF THE USERS FIRST TWO CHOICES
var maxNumber = Math.max(maxInput, inputThree);
//validate if inputs are numbers and not letters
// isNaN()
var compare = function (maxNumber, inputThree) {
if (inputThree === maxNumber) {
return alert("The result is the same!");
} else if (inputThree != maxNumber) {
return alert(maxNumber + " " + "is the larger value!");
}
}
compare(maxNumber, inputThree);
现在我得到了“NaN是更大的值”的结果,这让我发疯了!我试着运行console.log来查看我得到的结果,但根本不起作用。所做的只是将NaN记录到控制台
我还尝试从Math.max()中删除参数,但得到的结果是:
“-无穷大是较大的值!”
至少有人能告诉我为什么会发生这种事吗?或者进一步向我解释发生了什么 Math.max([inputOne,inputwo])
应该是Math.max(inputOne,inputwo)
你为什么不直接用它来买最大的呢
var maxNumber = Math.Max(inputOne, inputTwo, inputThree);
在这里:
InputThere是一个字符串(即其值的类型为),始终为。在这里:
var maxNumber = Math.max(maxInput, inputThree);
maxNumber始终是一个数字(因为这是返回的值,即使参数是字符串)。因此:
始终为false,因为数字永远不等于字符串(请参阅)。因此,要么将inputThree转换为一个数字,例如
+inputThree === maxNumber
或者使用==
inputThree == maxNumber
Math.max()
不将数组作为参数。将Math.max([1,2])
与Math.max(1,2)
进行比较。另外,在中,如果在比较功能中使用==代码>而不是=代码>强制使用数值哇,当然,我以前也试过这么做,但我不知道我在做什么。现在我看了一下,这一切都是有道理的。我肯定是把事情弄得比需要的复杂,你能告诉我我是新来的吗?哈哈,无论如何,非常感谢你,巴玛!!
+inputThree === maxNumber
inputThree == maxNumber