JavaScript - NaN古怪

时间:2013-10-03 13:51:07

标签: javascript

以下是代码:

console.log(
                "r=" + r + "; " +
                "a=" + a + "; " +
                "cx=" + cx + "; " +
                "Math.cos(a)=" + Math.cos(a) + "; " +
                "r * Math.cos(a)=" + (r * Math.cos(a)) + "; " +
                "cx.x + r * Math.cos(a)=" + (cx.x + r * Math.cos(a)) + "; "
            );

结果:

r=0; a=0; cx=451; Math.cos(a)=1; r * Math.cos(a)=0; cx.x + r * Math.cos(a)=NaN; 

对于r和a的所有值,NaN都是NaN,只是不想发布多余的结果。

为什么会发生这种情况以及如何解决?

1 个答案:

答案 0 :(得分:3)

从输出结果来看,cx似乎是一个数字,表示cx.x将为undefined。所以最后一个公式是undefined + ...,在使用JavaScripts奇怪规则时会产生NaN(至少在Chrome控制台中):

> cx = 451;
451
> cx.x+1
NAN