小编Joh*_*ant的帖子

传递给函数的数组不会变异?

我认为Arrays是对象所以当我执行这行代码时,我期待得到[3,3,3]因为我改变了数组.但是我得到了[2,4,6]

var arr = [2,4,6];

function checkArr(arr){
    arr = [3,3,3];
}

console.log(arr)
Run Code Online (Sandbox Code Playgroud)

如果我添加一个return语句,那么我得到了我期望的值.我想知道为什么在执行函数期间给arr一个新值时需要返回.

var arr = [2,4,6];

function checkArr(arr){
    arr = [3,3,3];
  return arr;
}

console.log(arr)
Run Code Online (Sandbox Code Playgroud)

最后,在这个for循环中我不使用,return并且数组值被更改!我有点困惑.为什么第一个例子没有改变值arr

var arr = [2,4,6];

function checkArr(arr){
    for(var i = 0; i<arr.length; i++){
    arr[i] = 3
  }
}

console.log(arr)
Run Code Online (Sandbox Code Playgroud)

javascript arrays pass-by-reference

0
推荐指数
1
解决办法
168
查看次数

标签 统计

arrays ×1

javascript ×1

pass-by-reference ×1