首页 > 代码库 > JS笔记2——额,被作用域坑了~
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——额,被作用域坑了~
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。