Sobes.tech
Junior

Veri iletimi referans ve değer olarak nasıl çalışır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Değer aktarımı (by value) ve referans (by reference) nasıl değiştiğini belirler, orijinal değişkenin fonksiyona geçirilmesi veya ataması sırasında.

Değer ile aktarım:

Değişkenin değeri kopyalanır. Bu kopya üzerinde fonksiyon içinde veya atama sırasında yapılan herhangi bir değişiklik, orijinal değişkeni etkilemez. Primitif veri tipleri (sayılar, dizgiler, boolean değerler, null, undefined, Symbol, BigInt) için uygundur.

// Değer ile aktarım
let a = 10;

function modifyValue(num) {
  num = 20; // Kopya değiştirilir
}

modifyValue(a);
console.log(a); // 10 yazdırır - orijinal değer değişmedi

Referans ile aktarım:

Değerin kendisi değil, bu değere işaret eden (bellekteki adres) bir referans aktarılır. Bu referans aracılığıyla yapılan değişiklikler, orijinal değişkeni etkiler. JavaScript'te nesneler (diziler ve fonksiyonlar dahil) için kullanılır. Anlamanız gereken önemli nokta, nesnenin kendisinin değil, bir referansın aktarıldığıdır. Bir fonksiyon içindeki parametre yeniden atanırsa, referansa yeni bir değer atanır, ancak orijinal değişken değişmez.

// Nesne ile referans aktarımı
let obj1 = { value: 10 };

function modifyObject(obj) {
  obj.value = 20; // Nesnenin özelliği referansla değiştirilir
}

modifyObject(obj1);
console.log(obj1.value); // 20 yazdırır - orijinal nesne değişti
// Nesne aktarımında parametrenin yeniden atanması örneği
let obj2 = { value: 10 };

function reassignObject(obj) {
  obj = { value: 30 }; // obj artık fonksiyonun yerel kapsamındaki yeni nesneye referans eder
}

reassignObject(obj2);
console.log(obj2.value); // 10 yazdırır - orijinal nesne değişmedi
Özellik Değer ile aktarım Referans ile aktarım
Ne aktarılır Değerin kopyası Değere referans
Orijinal üzerindeki etkisi Hayır Evet (özellikler değiştirildiğinde)
JS veri tipleri Primitifler Nesneler