JavaScript'te Nullish Coalescing Operatörü
Bu makale, JavaScript'te Nullish Coalescing Operatörünü açıklar.
YouTube Video
JavaScript'te Nullish Coalescing Operatörü
JavaScript'te Nullish Coalescing Operatörü (??
), bir değerin null
veya undefined
olup olmadığını değerlendirir ve öyleyse farklı bir varsayılan değer döndürür. Genellikle kullanılan mantıksal VEYA operatörü (||
) ile benzerdir, ancak null
ve undefined
üzerine odaklandığı için farklıdır.
Mantıksal VEYA (OR) operatörü, sol taraf değeri falsy
olduğunda sağ taraf değerini döndürürken, nullish coalescing operatörü, sağ taraf değerini yalnızca sol taraf değeri null
veya undefined
olduğunda döndürür. Bu özellik, 0
ve boş stringler (""
) gibi değerlerin doğru şekilde işlenmesine izin verir.
Temel Sözdizimi
1let result = value ?? defaultValue;
value
, kontrol edilen değerdir.defaultValue
,value
değerinull
veyaundefined
olduğunda döndürülen değerdir.
Nullish Coalescing Operatörünün Kullanım Örnekleri
Aşağıdaki örnek, null
veya undefined
durumunda bir varsayılan değer döndüren bir işleme sahiptir.
1let name = null;
2let defaultName = "Anonymous";
3
4// If name is null or undefined, 'Anonymous' is returned
5let displayName = name ?? defaultName;
6console.log(displayName); // "Anonymous"
Bu kodda, name
null
olduğu için defaultName
, yani "Anonymous"
değeri döndürülür. Eğer name
, null
veya undefined
dışında bir değer ise, o değer döndürülür.
Mantıksal VEYA Operatörü ile Farklılıklar
Nullish coalescing operatörü, mantıksal VEYA (OR) operatörüne benzer ancak önemli bir farkı vardır. Mantıksal VEYA (OR) operatörü, false
, 0
, NaN
, ""
, null
, undefined
, vb. gibi 'falsy' değerleri kontrol ederken, nullish coalescing operatörü yalnızca null
ve undefined
değerlerini kontrol eder.
Mantıksal VEYA Operatörü Örneği:
1let count = 0;
2let defaultCount = 10;
3
4// Since count is falsy (0), defaultCount is returned
5let result = count || defaultCount;
6console.log(result); // 10
Nullish Coalescing Operatörü Örneği:
1let count = 0;
2let defaultCount = 10;
3
4// Since count is neither null nor undefined, count is returned as is
5let result = count ?? defaultCount;
6console.log(result); // 0
Bu şekilde, nullish coalescing operatörü 0
ve boş dizgi (""
) gibi geçerli değerleri korur ve yalnızca gerektiğinde bir varsayılan değer döndürür. Mantıksal VEYA (OR) operatörü bu değerleri falsy
olarak kabul edip varsayılan değer döndürdüğü için, kullanım durumuna bağlı olarak uygun operatör seçimi yapmak önemlidir.
Birlikte Kullanım Örneği:
Nullish coalescing operatörü diğer mantıksal operatörlerle birleştirilebilir, ancak bunu yaparken dikkatli olunması gerekir.
1let a = null;
2let b = 0;
3let c = false;
4
5// SyntaxError
6let result = a ?? b || c;
- Örneğin, bunu mantıksal VEYA (OR) operatörü (
||
) veya mantıksal VE (AND) operatörü (&&
) ile birlikte kullanırken, işlem sırasını netleştirmek için parantezler kullanılmalıdır.
1let a = null;
2let b = 0;
3let c = false;
4
5let result = (a ?? b) || c;
6console.log(result); // false
- Bu örnekte, önce
a ?? b
değerlendirilir vea
null
olduğundan,b
döndürülür. Sonra,b || c
değerlendirilir veb
gerçeğe dönüştürülebilir olmadığından, sonundac
döndürülür.
Nullish coalescing operatörünün yararlı olduğu durumlar
Aşağıdakiler, nullish coalescing operatörünün faydalı olduğu durumlardır.
- Formlar için Varsayılan Değerler Bu, kullanıcı hiçbir şey girmediğinde form giriş alanları için varsayılan bir değerin belirlendiği senaryolarda kullanılabilir.
1let userAge = null;
2let defaultAge = 18;
3let age = userAge ?? defaultAge;
4console.log(age); // 18
- API Yanıtlarını İşleme
API yanıtlarında değer
null
veyaundefined
olduğunda yedek işleme yapılabilir.
1let apiResponse = {
2 title: "New Article",
3 description: null
4};
5
6let title = apiResponse.title ?? "Untitled";
7let description = apiResponse.description ?? "No description available";
8console.log(title); // "New Article"
9console.log(description); // "No description available"
Özet
Nullish coalescing operatörü (??
), veri başlatma ve API yanıtlarını işleme için çok kullanışlıdır çünkü null
veya undefined
ile karşılaştığında bir varsayılan değer döndürür. Özellikle, 0
veya boş dizgiler gibi falsy
değerleri düzgün bir şekilde işlemek istediğinizde, geleneksel mantıksal VEYA (OR) operatöründen (||
) daha iyi bir seçimdir.
Nullish Birleştirme Atama Operatörü (??=) Hakkında
Genel Bakış
JavaScript'te, Nullish Birleştirme Atama Operatörü ??=
, null
veya undefined
değerlerini tutan değişkenlere verimli bir şekilde yeni bir değer atamak için tanıtılmıştır. Bu operatör, yalnızca belirli bir değer null
veya undefined
ise bir değişkene atama yapmak için kullanışlı bir kısayoldur.
Temel Kullanım
Nullish coalescing atama operatörü şu şekilde çalışır:.
- Bir değişken
null
veyaundefined
ise sağ taraftaki değeri atar. - Eğer değişken
null
veyaundefined
değilse hiçbir şey yapmaz ve mevcut değerini korur.
Sözdizimi
Nullish coalescing atama operatörünün temel sözdizimi şu şekildedir:.
1x ??= y;
- Eğer
x
null
veyaundefined
isey
,x
'e atanır. - Eğer
x
zaten bir değere sahipse (yaninull
veyaundefined
değilse),x
'in değeri değiştirilmez.
Örnek
Nullish birleşim atama operatörünün temel bir örneğine bakalım.
1let userName = null;
2let defaultName = "Guest";
3
4// Since userName is null, defaultName is assigned
5userName ??= defaultName;
6
7console.log(userName); // "Guest"
- Bu kodda,
userName
null
olduğu içindefaultName
değeri atanıyor.
Ardından, değerin ne null
ne de undefined
olduğu bir örnek burada.
1let userName = "Alice";
2let defaultName = "Guest";
3
4// Since userName is "Alice", nothing is assigned
5userName ??= defaultName;
6
7console.log(userName); // "Alice"
- Bu durumda,
userName
için zaten"Alice"
ayarlı olduğu için herhangi bir atama yapılmaz.
Diğer atama operatörleriyle karşılaştırma
JavaScript'te birçok başka atama operatörü de bulunmaktadır. Özellikle, mantıksal VEYA atama operatörü (||=
) ile olan fark önemlidir.
1let value = 0;
2value ||= 10; // Assign 10 if value is falsy
3console.log(value); // 10
Mantıksal VEYA (OR) atama operatörü, false
, 0
veya boş dizgi (""
) gibi falsy
değerlerle karşılaştığında bile değer atar; oysa nullish coalescing atama operatörü yalnızca değer null
veya undefined
olduğunda çalışır.
1let value = 0;
2value ??= 10;
3// Since value is neither null nor undefined,
4// nothing is assigned
5console.log(value); // 0
Nullish coalescing atama operatörü yalnızca null
veya undefined
üzerinde çalıştığı için, 0
veya false
gibi değerleri korumak istediğiniz durumlarda çok kullanışlıdır.
Gerçek dünya kullanım örnekleri
Null birleştirme atama operatörü için gerçek dünya kullanım durumu aşağıdaki gibi olabilir:.
-
Varsayılan değerleri ayarlama
Kullanıcı girişlerinin veya API yanıtlarının
null
veyaundefined
olabileceği durumlarda varsayılan değerleri ayarlamak için kullanışlıdır.
1let userSettings = {
2 theme: null,
3 notifications: true
4};
5
6// Since theme is null, "light" is assigned
7userSettings.theme ??= "light";
8
9console.log(userSettings.theme); // "light"
-
Opsiyonel parametrelerin işlenmesi
Fonksiyon argümanları belirtilmediğinde varsayılan işlemleri gerçekleştirmek için de kullanılabilir.
1function greet(name) {
2 name ??= "Guest";
3 console.log(`Hello, ${name}!`);
4}
5
6greet(); // "Hello, Guest!"
7greet("Alice"); // "Hello, Alice!"
Özet
Nullish coalescing atama operatörü (??=
), yalnızca sol taraf değeri null
veya undefined
olduğunda değer atar, bu da kodu daha sade hale getirir ve istem dışı atamaları önlemeye yardımcı olur. Özellikle 0
veya false
gibi "yanlış" değerlere çalışırken, geleneksel mantıksal VEYA operatöründen (||=
) daha uygun olabilir.
Bu operatörü kullanarak daha sağlam ve okunabilir bir kod oluşturabilirsiniz.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.