JS中全局变量与局部变量怎么设置?

JavaScript015

JS中全局变量与局部变量怎么设置?,第1张

var odiv=document.querySelector('#div2')

var arr=[]

var chz=odiv.offsetLeft

var timer=null

for(var i=20i>0i=i-2){

arr.push(i,-i)

}

arr.push(0)

var num=0

odiv.onclick=function(){

//var num=0为什么放在这就可以重复的点击有效;放在上面只能点一次;num不是应该能按作用域链找上去的吗?

timer=setInterval(function(){

odiv.style.left=chz+arr[num]+'px'

num++

if(num==arr.length){

clearInterval(timer)

}

},30)

console.log(num)

}

我在代码中加入了console.log(num),你可打开控制台,看看不同情况输出的num值。

其实就是你把num变量放在函数中,是局部变量,每次单击的时候,都会重新赋值0再开始运行下面的代码,所以是可以重复点击。

而放在上面,是全局变量,每次单击后会根据你下面的代码num++而不同了,根据你写的代码,自然就没有效果啦。

变量是存在

但是值是否一运行就存在?对网页不是很清楚,但是看你的赋值我想运行时那里还没有值吧

可以给 text1 绑定一事件,当 text1 的量变后重新赋值 a 变量

<script>

var a=100

function A(){return a--}

function B(){setTimeout(A,2000)}

function C(){document.getElementById("main").innerHTML='显示'+a+'变量'}

</script>

<button onClick=B()>按钮1</button>

<button onClick=C()>按钮2</button>

<div id="main"></div>