为什么不能在函数中使用局部变量?

时间:2018-08-26 03:34:31

标签: javascript

我对setTimeout有疑问,我的代码如下:

docker compose

我对为什么不能在<script type="text/javascript"> var s =-1; setImage(); function setImage(){ var img=new Array(); var url=new Array(); img[0]="images/oak.gif";url[0]="http://oakland.athletics.mlb.com/"; img[1]="images/was.gif";url[1]="http://washington.nationals.mlb.com/"; img[2]="images/chc.gif";url[2]="http://chicago.cubs.mlb.com/"; img[3]="images/sd.gif";url[3]="http://sandiego.padres.mlb.com/"; s+=1; if(s>=img.length){ s==0; }; document.getElementById("imgsrc").src=img[s]; document.getElementById("imghref").href=url[s]; setTimeout(setImage,1000); }; </script> 中更改var s=-1感到困惑,例如:

function setImage()

该功能不起作用。我以为问题出在全局变量和局部变量上,但我的观点不明确。

代码结果将是

        **var s=-1**
        s+=1;
        if(s>=img.length){
            s==0;
        };
		var s =-1;
		setImage();
		function setImage(){
			var img=new Array();
			var url=new Array();
			img[0]="https://imgur.com/sfAyT6s.gif";url[0]="http://oakland.athletics.mlb.com/";
			img[1]="https://imgur.com/av5hb4a.gif";url[1]="http://washington.nationals.mlb.com/";
			img[2]="https://i.imgur.com/zGKLMPh.gif";url[2]="http://chicago.cubs.mlb.com/";
			img[3]="https://i.imgur.com/ZBXTL5s.gif";url[3]="http://sandiego.padres.mlb.com/";
			s+=1;
			if(s>=img.length){

				s=0;
			};
			document.getElementById("imgsrc").src=img[s];
			document.getElementById("imghref").href=url[s];
			setTimeout(setImage,1000);
		};

1 个答案:

答案 0 :(得分:1)

在您的if语句中,您写了s==0==运算符是比较运算符。询问“ s是否等于0?”如果您打算将s设置为零,请改写s=0