JavaScript void 0 kullanımı

JavaScript Void 0 Kullanımı

JavaScript void operatörü kendisine verilen ifadeyi çalıştırır ve ifadenin sonucu ne olursa olsun undefined değerini geri dönderir.

Mesela

console.log(void(5*5));
// Konsolo
// undefined
// yazdırır

Örnekte gördüğünüz gibi önce 5*5 çalıştırıldı ve sonrasında void operatörü geriye undefined değerini döndü.

Sözdizimi

void operatöri iki şekilde kullanılır.

void ifade
void(ifade)

Her iki kullanım da aynı anlama gelir. Fakat bazı durumlarda parantezin önceliği sonucu değiştirebilir.

void 2 === "2"; // (void 2) === '2',  false dönderir
void (2 === "2"); // void (2 === '2'),  undefined dönderir

JavaScript void Nedir?

void operatörü kendisine verilen ifade / fonksiyon çalıştıktan sonra geriye undefined değerini döndermek için kullanılır. Yani bu operatör çalıştırıldığında geriye dönecek değer undefineddir.

Örnek Kullanımlar

const output = void 1;
console.log(output);
// Konsola
// undefined
// yazdırır

void console.log('ifade çalıştırıldı');
// Konsola
// ifade çalıştırıldı
// Yazdırır


void function iife() {
  console.log('iife çalıştırıldı');
}();
// Konsola
// iife çalıştırıldı
// yazdırır

void function test() {
  console.log('test fonksiyonu çalıştırıldı');
};
try {
  test();
} catch (e) {
  console.log('test fonksiyonu tanımlı değil');
  // Konsolo
  // test fonksiyonu tanımlı değil
  // yazdırır
}

İlk örnekte void 1 ifadesinin sonucu output değişkenine atandı ve konsola yazdırıldı. Bu sonuç undefined dir.

İkinci ve üçüncü örnekte fonksiyonlar void olarak tanımlandılar, fakat dönüş değerleri kullanılmadığı için sadece fonksiyon içerikleri konsola yazdırıldı ama dönüş değerleri ki bu undefined şeklindedir hiç kullanılmadı.

Son örnekte ise tyr-catch bloğu içerisinde void ile tanımlanmış bir fonksiyon çalıştırıldı. void ile çalışan bir fonksiyon ne yaparsa yapsın sonuçta geriye undefined dönderdiği için bir hata oluştuğu varsayılır ve catch bloğu çalışacaktır.

Url Tanımlarken void(0) Kullanmak

void(0) geriye undefined değeri dönderir. Bu değeri bir url içerisinde kullandığımızda, artık o a etiketine tıklandığında herhangi bir yere yönlendirme yapılmaz.

<a href="javascript:void(0)">tıkla</>

Bu şekilde tanımlanmış bir link, normal bir link gibi çalışır, ekranda görüntüsü de normal bir link gibidir. Tek farklı, linke tıklandığında herhangi bir işlem yapılmaz. Çünkü void(0) ifadesi geriye undefined değeri dönderir. Buda işlem yapılmasını engeller.

Fakat istenirse, linke tıklandığında bir javascript ifadesi veya fonksiyonu çalıştırılabilir. Bu durumda eğer void ile tanımlanırsa, yine link sadece javascript kodunu çalıştırır ve bir yönlendirme yapmaz.

<a href="javascript:void(document.body.style.backgroundColor='green');">
  Zemini yeşil yapmak için tıklayın.
</a>

Yukarıdaki kodu çalıştırdığınızda body etiketinin zemin rengi yeşile dönüştürülür. Sonrasında bu işlem void içerisinde yapıldığı için, link çalışmayacaktır.

Arrow Fonksiyonlar İle Kullanımı

Arrow ( ok ) fonksiyonlar tek satır çalıştırıldığında return çalıştırılmış gibi davranır.

const test = () => birSeylerYap();

Şeklindeki bir tanımlama aslında şu şekilde çalışır.

const test = () => return birSeylerYap();

Buradaki return ifadesi gizlidir ve eğer bu şekilde biz return eklersek hata alırız. Burada söylemek istediğimiz, arrow fonksiyonlar ile tek satırlık bir işlem yapıldığında return kullanılmış gibi geriye bir değer döner.

Eğer biz bu tip bir kullanımda geriye değer döndermek istemiyorsak, bir beklenmeyen yan etki (side effect) oluşmaması için void operatörünü kullanabiliriz.

const test = () => void birSeylerYap();

Böylece işlem sonucunda geriye undefined değeri dönecektir.

Sonuç

Farklı durumlar için farklı ihtiyaçlar ve farklı çözümler bulunmakta. Bunlardan bir tanesi de çıktı olarak bir değerin olmasının istenmediği durumlarda void operatrünün kullanmasıdır. void geriye undefined değeri dönderir.

Eklemek istedikleriniz mi var? Yorumlarda bizimle paylaşabilirsiniz.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir