我的JavaScript代码存在什么问题?var per部分无输出结果
问题分析与修复方案
你遇到的问题出在计算周长的那行代码里,JavaScript解析器无法识别你写的表达式,导致per变量没有被正确赋值,自然也就输出不了结果。
错误原因
原代码中这一行:
var per= 2 * (22 / 7 ) (Math.sqrt((1 / 2)* Math.pow(a,2) + Math.pow(b,2)));
在(22 / 7 )和后面的(Math.sqrt(...))之间缺少了乘法运算符*。JavaScript会把(22/7)当作一个数值,后面紧跟括号会被解析成“调用这个数值作为函数”,但数值并不是函数,所以会抛出语法错误,代码执行到这里就卡住了,per也就没有值。
修复后的完整代码
<!DOCTYPE html> <html> <head> <title>JavaScript 2</title> <script type="text/javascript"> var a = parseFloat(prompt("Enter X")); var b = parseFloat(prompt("Enter Y")); var Area = (22 / 7) * a * b; // 补上缺失的乘法运算符 * var per = 2 * (22 / 7) * Math.sqrt((1 / 2) * Math.pow(a, 2) + Math.pow(b, 2)); document.write("Area=" + Area + "<br>"); document.write("Per=" + per); </script> </head> <body> </body> </html>
我还加了<br>让Area和Per的输出换行,看起来更清晰~
补充说明
看起来你是在计算椭圆的面积和近似周长:
- 椭圆面积公式
πab是正确的(你用22/7近似π) - 周长用的是近似公式
2π√[(a²+b²)/2],这个公式是合理的,修复运算符后就能正常计算了。
内容的提问来源于stack exchange,提问作者Omar Kareem
相关产品推荐
相关产品推荐

