javascript 函数的参数 是局部变量吗

JavaScript022

javascript 函数的参数 是局部变量吗,第1张

函数的参数是在函数内部可用的,是局部变量

但如果参数是个数组或对象(引用类型),则函数内部是可以影响到外部传参之前的变量的值

JavaScript函数传参传递的仍然是值传递,而不是引用传递

别的函数是调不到一个函数中的局部变量,因为局部变量属于这个函数的私有变量。但可以把局部变量变为这个函数的属性。如:

把name变量变为te()函数的属性。【秉着学习的态度,如果有错,请指出】

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++而不同了,根据你写的代码,自然就没有效果啦。