<script> function calculate(a,c,b){ if(c==‘+‘){var d=a+b;} if(c==‘-‘){var d=a-b;} if(c==‘*‘){var d=a*b;} if(c==‘/‘){var d=a/b;} return d; } // calculate(2,‘*‘,6); //不能输出结果 // alert(d); alert(calculate(2,‘*‘,6)); //可以正常输出 </script>
问题点列出来了,这是为啥?
好吧,是作用域的问题,是d的作用域的问题,函数里面是用var 声明的,是局部变量~~~去掉var之后就可以正常输出了,不过还是最好不要这样做,可以不把结果赋给另一个变量:
<script> function calculate(a,c,b){ if(c==‘+‘){return a+b;} if(c==‘-‘){return a-b;} if(c==‘*‘){return a*b;} if(c==‘/‘){return a/b;} } alert(calculate(2,‘*‘,6)); </script>
我知道这错误太低级了,可是,我最开始真没发现~!谨记谨记!
时间: 2024-11-05 12:20:10