用Math.Pi计算不会抛出错误?

JPu*_*uge 3 javascript html5-canvas

我正在写一些画布代码来绘制一个圆圈,但它从未被绘制过.最后我发现这是因为我打字Math.Pi而不是Math.PI.

在Chrome浏览器开发工具,我可以看到Math.Piundefined,但它永远不会抛出任何异常.这是Chrome中的错误还是在undefineds 上进行计算实际上是合法的?

这是我的代码:

ctx.save();
ctx.lineWidth = 2;
ctx.fillStyle = '#FF0000';
ctx.beginPath();
ctx.arc(can.x, can.y, 15, 0, Math.Pi * 2, true);
ctx.fill();
ctx.restore();
Run Code Online (Sandbox Code Playgroud)

ctx是指canvas.getContext("2d");.

pim*_*vdb 6

undefined * 2评估为NaN,画布2D上下文规范说:

除非另有说明,否则对于2D上下文接口,必须忽略具有值为无穷大或NaN值的数值参数的任何方法调用.

因此,ctx.arc带有参数NaN的调用意味着默认忽略调用(即没有绘制任何内容),而不是抛出错误.