-1

这是代码:

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,只是不想发布多余的结果。

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

4

1 回答 1

3

从输出来看,cx似乎是一个数字,这cx.x意味着undefined. 所以最后一个公式是undefined + ...在使用 JavaScript 奇怪的规则时导致 NaN(至少在 Chrome 控制台中):

> cx = 451;
451
> cx.x+1
NAN
于 2013-10-03T13:54:23.380 回答