JavaScript Fonksiyonlar

x4ty

Kilopat
Katılım
18 Ekim 2017
Mesajlar
21
Daha fazla  
Cinsiyet
Erkek
Merhaba arkadaşlar, JavaScript öğrenmeye başladım. Şu an fonksiyonlardayım ve neler yapabileceğimi kestirmeye keşfetmeye çalışıyorum, bir konuda yardıma ihtiyacım var.

function sayiUret(){ return Math.ceil(Math.random() * 50) } var sayi1 = sayiUret() var sayi2 = sayiUret() function sayiCarp(){ return sayi1*sayi2 } function sonuc(){ console.log(sayiCarp()) }


Burada yapmak istediğim sayıUret fonksiyonu ile üretilen sayıyı sayiCarp fonksiyonu ile çarpıp sonuc fonksiyonu ile konsola yazdırmak. Browser konsolunda sonucu veriyor ancak sürekli aynı sayıları çarpıp aynı sonucu veriyor o yüzden Visual Studio'da deneyeyim dedim ancak konsola yazmıyor. Hata da almıyorum nerede yanlıs yapıyorum acaba?
 
Son düzenleyen: Moderatör:
Aynı sayıları vermesinin sebebi: Sayıları bir kez random olarak tanımlayıp sonrasında tekrar tekrar çarpmanız. Her seferinde random olarak hesaplatmanız gerekiyor.
 
Merhaba arkadaşlar, JavaScript öğrenmeye başladım. Şu an fonksiyonlardayım ve neler yapabileceğimi kestirmeye keşfetmeye çalışıyorum, bir konuda yardıma ihtiyacım var.

function sayiUret(){ return Math.ceil(Math.random() * 50) } var sayi1 = sayiUret() var sayi2 = sayiUret() function sayiCarp(){ return sayi1*sayi2 } function sonuc(){ console.log(sayiCarp()) }


Burada yapmak istediğim sayıUret fonksiyonu ile üretilen sayıyı sayiCarp fonksiyonu ile çarpıp sonuc fonksiyonu ile konsola yazdırmak. Browser konsolunda sonucu veriyor ancak sürekli aynı sayıları çarpıp aynı sonucu veriyor o yüzden Visual Studio'da deneyeyim dedim ancak konsola yazmıyor. Hata da almıyorum nerede yanlıs yapıyorum acaba?

Random sayi ureten fonskiyonun set seed ozelligi yok Javascript'te. Ayni sequence'i yaratir ayni context icinde. O sebeple 1. ve 2. uretecegi random deger ayni seed icin hep ayni olacaktir, cunku aslinda random degil urettigi sayilar. Bu birinci aciklama.

Ikinci aciklama da, fonksiyonel programlama yaparken, global degiskenler uzerinden degil, fonksiyona parametre olarak verilenler uzerinden islem yapilir. Yoksa bir anlami kalmiyor fonksiyonel yapmanin. Yani senin sayiCarp() fonksiyonun aslinda sadece 2 global degiskeni carpiyor, halbuki parametre alip onu carpmasi lazim.

Asagidaki kodun etrafina html yazip, .html dosyasi olarak kaydedip browser ile ac. Her F5 'e basmanda farkli hesapladigini goreceksin. ( Cunku sequence degisiyor ).

Kod:
 function sayiUret(){
        return Math.ceil(Math.random() * 50)
    }

    function sayiCarp(x, y){
        return x*y
    }

    var sayi1 = sayiUret();
    var sayi2 = sayiUret();
    
    var sonuc = sayiCarp(sayi1,sayi2);
    console.log(sonuc);
 
Cevaplar için teşekkür ederim.Zamannda cevap verememiş olmamın sebebi yazım hatasından dolayı bir süreliğine yasaklanmamdı.Daha çok yolum var anlaşılan olsun pes etmek yok. 💪
 
Bugün derslerimin arasında "Nesneler ile çalışmak" var ancak ne olduğu hakkında hiçbir fikrim yok.Çok heyecanlıyım çok eğleniyorum öğrenirken.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı