使用模板字面量调用Math.max返回NaN?求助解决JavaScript作业问题
解决Math.max返回NaN的问题
你遇到的NaN问题有两个核心原因:
prompt()返回的是字符串类型,并非数值,直接参与数值运算会引发类型错误- 你用模板字面量把两个值拼成了带逗号的字符串(比如
"5, 7")传给Math.max(),但这个函数只接受独立的数值参数,无法解析这类字符串,因此返回NaN
修复后的完整代码:
// 将输入转为十进制整数,避免字符串类型问题 let number = parseInt(prompt("Write an integer between 1-10: "), 10); const randomnum = Math.floor(Math.random() * 10) + 1; document.getElementById("random").innerHTML = `The generated integer is ${randomnum}`; // 直接传入两个数值参数,不要拼接成字符串 let number1 = Math.max(number, randomnum); document.getElementById("mathmax").innerHTML = `From these two integers, ${number1} is greater`;
额外优化:可以加个输入验证,防止用户输入非1-10的内容:
// 循环验证,直到输入有效 while (isNaN(number) || number < 1 || number > 10) { number = parseInt(prompt("Please enter a valid integer between 1-10: "), 10); }
内容的提问来源于stack exchange,提问作者onni
相关产品推荐
相关产品推荐

