比如说你有一个像下面这样的功能
var value = 1;
function test(myVar) {
myVar = 2
}
test(value)
console.log(value)
//prints out 1
现在,我已经读过JS函数中发生了两件事。
1)Javascript按值传递基元。当“value”作为参数传递给test()时,会创建一个与全局变量“value”分开的副本。因此,“myVar”是与“value”
分开的变量2)JS函数中的参数实际上只是函数的局部变量。因此,“myVar”参数仅在test()函数内部具有作用域。
我知道这两个陈述都是正确的,但是这些陈述中的哪一个导致console.log(value)打印出来
答案 0 :(得分:0)
这两种说法都是正确的。它打印出1的原因是,正如您所提到的,参数是按值传递的。因此,变量value
的值永远不会改变。
虽然第2点也是如此,但它与这种行为并没有多大关系。它与在函数范围之外使用myVar之类的事情更相关。
答案 1 :(得分:0)
两个陈述都是正确的
请从Mozilla Variable Scope in Javascript
查看此网址