首頁 >web前端 >js教程 >在 JavaScript 傳遞給函數時,原始值和參考值有何不同?

在 JavaScript 傳遞給函數時,原始值和參考值有何不同?

Susan Sarandon
Susan Sarandon原創
2024-11-16 10:21:02478瀏覽

How do primitive values and reference values differ in JavaScript when passed to a function?

JavaScript 中的原始值與參考值

在 JavaScript 中,可以為變數指派原始值或參考值。原始值(例如布林值、數字和字串)直接儲存在變數的記憶體位置。

建立引用值(例如陣列或物件)時,實際上並未儲存該物件或陣列變數本身。相反,您儲存的是對記憶體中儲存物件或陣列的位置的引用。這意味著如果您更改物件或數組,即使變數本身沒有更改,更改也會反映在變數中。

範例

以下JavaScript 程式碼建立一個原始值和一個參考值:

在此範例中,變數名稱包含原始值「John」。變數 ShoppingCart 包含對儲存在記憶體中的陣列物件的參考。

按值傳遞值與按引用傳遞值

當您將原始值傳遞給函數時,傳遞該值的副本。這意味著對函數內的值所做的任何更改都不會影響儲存在變數中的值。

將引用值傳遞給函數時,傳遞的是引用本身,而不是副本。這意味著對函數內的物件或陣列所做的任何更改也會影響儲存在變數中的物件或陣列。

範例

以下JavaScript 程式碼示範透過值和引用傳遞值:

在第一個範例中,函數changeName 傳遞原始值“John”。當函數將值變更為“Jane”時,儲存在變數名稱中的原始值不受影響。

在第二個範例中,函數 addProduct 傳遞了參考值 shoppingCart。當函數將產品「Apple」加入陣列時,儲存在變數 shoppingCart 中的原始物件也會更新。

以上是在 JavaScript 傳遞給函數時,原始值和參考值有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn