首页 > 代码库 > 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——额,被作用域坑了~