/

JavaScript中的值是傳值還是傳址?

JavaScript中的值是傳值還是傳址?

答案是:取決於具體情況!

原始資料類型是按值傳遞。

物件是按址傳遞。

原始資料類型包括數字、字串、布林值、null、undefined和符號。

除了原始資料類型外,其他都是物件。陣列是物件。函式是物件。

當你將一個數字傳遞給一個函式時,它將被複製到該函式內部:

1
2
3
4
5
6
7
8
const increment = num => {
num = num + 1
}

const num = 2
increment(num)

console.log(num) //2

如果你傳遞一個物件,它將按址傳遞,所以如果你修改其中一個屬性,原始物件也會被修改:

1
2
3
4
5
6
7
8
9
10
11
const increment = num => {
num.value = num.value + 1
}

const num = {
value: 2
}

increment(num)

console.log(num.value) //3

tags: [“JavaScript”, “傳值”, “傳址”, “原始資料類型”, “物件”]