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——额,被作用域坑了~的主要内容,如果未能解决你的问题,请参考以下文章

零散的js笔记

JS 作用域及作用域链

JS 作用域及作用域链

读书笔记-你不知道的JS上-闭包与模块

JS常用代码片段2-值得收藏

JS常用代码片段2-值得收藏