JavaScript de Null, Undefined ya da Boş String ‘in Ternary Operatörü Olmadan Kontrolü
Aşağıdaki kod ile bir değerin null
olması ya da olmaması durumuna göre bir şeyler yaptırmak istediğimiz de ternary
operatörü ile bunu yapabiliyoruz.
response.name = response.name == null ? "john doe" : response.name;
Bunu yapmanın 2 farklı yönteminden daha bahsetmek istiyorum. Bu yöntemlerle de karşılaşınca ne olduğunu bilmek de fayda var. Bu ifadeyi daha kısa ve okunaklı bir şekilde yazmanın birkaç yolları da diyebiliriz.
1. Logical OR Operatörü Kullanımı (||
)
Logical OR operatörü (||
), soldaki ifadenin "truthy" olmadığı durumlarda sağdaki ifadeyi döndürür. Bu durumda, response.name
değeri null
, undefined
, ya da boş string (""
) gibi "falsy" bir değerse, sağdaki ifadeyi ("john doe"
) kullanabilirsiniz.
response.name = response.name || "john doe";
2. Nullish Coalescing Operatörü Kullanımı (??
)
ES2020 ile tanıtılan nullish coalescing operatörü (??
), soldaki ifadenin null
veya undefined
olması durumunda sağdaki ifadeyi döndürür. Bu operatör, ||
operatöründen daha kesin bir şekilde null
ve undefined
durumları için kullanılır ve boş string (""
) veya 0
gibi diğer "falsy" değerleri etkilemez. (C# dan da bu operatörü bilenleriniz olabilir ;))
response.name = response.name ?? "john doe";
Özet
Logical OR (||
): Tüm falsy değerler için sağdaki değeri döndürür.
Nullish Coalescing (??
): Sadece null
veya undefined
için sağdaki değeri döndürür.
Bu duruma bağlı olarak, hangi davranışı tercih ettiğinize göre bu operatörlerden birini kullanabilirsiniz.