但如果参数是个数组或对象(引用类型),则函数内部是可以影响到外部传参之前的变量的值
JavaScript函数传参传递的仍然是值传递,而不是引用传递
方法里面定义的叫做局部变量,有一个作用域。在外面是访问不了的,但是如果需要就定义成全局变量。如非必要不太建议使用过多的全局变量。
内部变量
function test(){var temp ="AAA"
}
window.alert(temp)//这是访问不了temp的
全局变量
var temp ="AAA"function testA(){
window.alert("testA_"+temp)//可以访问
}
function testB(){
window.alert("testB_"+temp)//可以访问
}
window.alert(temp)////可以访问
原因如下:
1、函数里面的变量不是全局变量,函数内部声明的变量一定是局部变量,所以想要外部访问是无法直接访问到的,请规范全局变量和局部变量的定义。
2、外部想要访问函数内的变量可以采用闭包来实现,代码实例如下:
functiontest(){var x=10
return function(){
return x
}
}
//调用局部变量x,报错未定义
alert(x)
// 调用
vara=test()
alert(a())
这样可以实现外部访问内部变量。