Bu ifadede neden "new" kullanmamız gerek?

const yearOfBirth = 1986;
console.log("Age :",new Date().getFullYear() - yearOfBirth);

bu ifadede neden “new” kullanılıyor ? New’ı kaldırarak denediğimde konsolda getfullYear diye bir fonksiyon olmadığını bildirdi ve ben de getFullYear’daki parantezleri silmeliyimdir muhtemelen dedim.
Bu sefer konsolu kontrol ettiğimde bir problem yok ancak age : NaN dedi.
Buradan da sonra bu "new"in lazım olduğunu anladım ancak neden lazım anlamlandıramadım.
New’in kullanım örneklerine baktım ancak buna benzer bir kullanıma ve neden böyle bir kullanım yapıldığını anlatan bir şey bulamadım.
Neden new gerekiyor burada ? New olunca ne demek oluyor ? New olmayınca ne demek oluyor ?

Son olarak ek bir soru daha sormak istiyorum. Javascript’te her satırın sonunda noktalı virgül kullanılıyordu. Ben de o şekilde kullandım ama python’dan olsa gerek bir ara alıştırma yaparken unutmuşum. Noktalı virgül olmadan da kodlar çalışıyor. Neden noktalı virgül koyuluyor o halde ?

new nesne oluşturmak için kullanılıyor. new kullanmazsanız sadece fonksiyon olarak çalışır ve tarihi string olarak döndürür ve string bir değişkenin getFullYear metodu yoktur. new kullanırsanız nesne üretilir. Tıpkı python’daki gibi sınıflardan nasıl nesne üretiyorsak aynı şekilde üretilir.

Noktalı virgül kullanılmadığında hata vermiyor olabilir, ama sizin kullanmanız tavsiye ediliyor bildiğim kadarıyla. Javascript biraz tuhaf bir dil ben mecbur kalmadıkça kullanmıyorum :sweat_smile:

2 Beğeni

Yanıtınız için teşekkür ederim. Visual Studio Code’daki live server’dan dolayı noktalı virgül olmadan da çalışmış olabilir bence. Çünkü ben yaptığım son projede about.html dosyasında <html- ve <body- taglarını kapatmayı unutmama rağmen yaptıklarım gözüküyordu.
Doğrudan dosya üzerinden browser’da açarak baktığımda bomboştu, o şekilde fark ederek düzelttim.

Belki bu durum da öyle bir şeydir. Mantıklı bir açıklaması yoksa dediğiniz gibi biraz tuhafmış :sweat_smile:

1 Beğeni

Hayır normalde noktalı virgül koymasanız da çalışıyor, sanırım noktalı virgül yoksa otomatik eklemeye çalışıyor. Ama noktalı virgül koymazsanız, bu otomatik noktalı virgül olayının hangi durumlarda başınıza iş açabileceğini de aşağıdaki blog yazısı anlatmış :smiley:

Örneğin şu ifade otomatik noktalı virgül eklemesi ile

function getCheese() {
    return 
    { 
       cheeseType: "Gouda"
    } 
}

şu şekle dönüşüyor

function getCheese() {
    return; 
    { 
       cheeseType: "Gouda"
    } 
  }

Diğer örnekler de blogda yer alıyor. Kısaca kullanmak önemli, işi otomatiğe bırakmamak lazım.

1 Beğeni