使用JS Math对象计算数学公式出现NaN问题,求排查解决
问题分析与修复
你的代码返回NaN的核心问题是**Math.pow(2)调用错误**——Math.pow()方法需要两个参数:第一个是底数,第二个是指数,只传一个参数会导致该方法返回NaN,后续所有依赖这个值的计算都会变成NaN。
错误点拆解
Math.pow(2):缺少第二个参数(指数),不符合API要求,返回NaN- 当
Math.cos(NaN)执行时,结果也是NaN,后续和z相乘、加上其他值的运算都会保留NaN
修复方案
假设你是想计算「2的平方」(即2²),则需要改为Math.pow(2, 2);如果是想计算其他数值的平方(比如变量x的平方),则改为Math.pow(x, 2)。以下是修正后的示例代码:
let z = 5 , x = 10 , y = 2 // 假设这里是计算2的平方,改为Math.pow(2, 2) , b = Math.cos(Math.pow(2, 2)) * z + Math.tan(2 * x) + Math.abs(y) ; console.log(b); // 现在会输出有效数值
补充说明:Math.tan(2 * x)中2*x是20弧度,Math.tan(20)是有效数值,Math.abs(y)也没问题,核心问题仅在Math.pow的参数缺失。
内容的提问来源于stack exchange,提问作者CometZ
相关产品推荐
相关产品推荐

