JavaScript Fonksiyonlar

x4ty

Kilopat
Katılım
18 Ekim 2017
Mesajlar
25
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:
sayi1 ve sayi2'yi public olarak tanımlayın.
 

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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…