JS笔记2——额,被作用域坑了~
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS笔记2——额,被作用域坑了~相关的知识,希望对你有一定的参考价值。
<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>
我知道这错误太低级了,可是,我最开始真没发现~!谨记谨记!
以上是关于JS笔记2——额,被作用域坑了~的主要内容,如果未能解决你的问题,请参考以下文章