22 Haziran 2016 Çarşamba

Javascript'de Math Nesnesi

Merhaba Webkolog'un Sayı Severleri! :)

Bugün JavaScript'in bize sunduğu harika bir yardımcıya, yani Math Nesnesine dalıyoruz. Adından da anlaşılacağı gibi, Math nesnesi matematiksel hesaplamalar ve işlemler için tasarlanmış yerleşik bir JavaScript nesnesidir. Bir matematik kütüphanesi gibi düşünebilirsiniz; ihtiyacınız olan tüm sabitleri ve fonksiyonları içinde barındırır. Bilimsel hesaplamalardan basit yuvarlama işlemlerine, rastgele sayı üretmekten trigonometrik fonksiyonlara kadar birçok alanda Math nesnesi en büyük yardımcımız! Hazırsanız, bu sayısal dünyanın kapılarını aralayalım!


Math Nesnesi Nedir ve Neden Kullanırız?

Math nesnesi, JavaScript'te temel matematiksel işlemler ve sabitler için statik özellikler ve metotlar sağlar. Statik olmasının anlamı, Math nesnesinden bir "instance" (örnek) oluşturmanıza gerek olmamasıdır. Yani, doğrudan Math.PI veya Math.random() gibi kullanabilirsiniz, new Math() demenize gerek yoktur.

Math nesnesini kullanma nedenlerimiz:

  • Hassasiyet: Matematiksel işlemleri doğru ve tutarlı bir şekilde yapmamızı sağlar.
  • Kolaylık: Karmaşık matematiksel formülleri elle yazmak yerine, hazır metotları kullanırız.
  • Performans: Bu metotlar genellikle C++ gibi dillerde optimize edilmiştir, bu da hızlı çalışmasını sağlar.

Math Nesnesinin Özellikleri (Sabitler)

Math nesnesi, sıkça kullanılan bazı matematiksel sabitleri özellik olarak sunar:

  • Math.E: Euler sabiti (e), yaklaşık olarak 2.718 değerindedir. Doğal logaritmanın tabanıdır.
  • Math.PI: Pi (π) sayısı, bir dairenin çevresinin çapına oranıdır, yaklaşık olarak 3.14159 değerindedir.
  • Math.SQRT2: 2'nin karekökü, yaklaşık olarak 1.414 değerindedir.
  • Math.SQRT1_2: 1/2'nin karekökü (veya 1 / Math.SQRT2), yaklaşık olarak 0.707 değerindedir.
  • Math.LN2: 2'nin doğal logaritması (ln 2), yaklaşık olarak 0.693 değerindedir.
  • Math.LN10: 10'un doğal logaritması (ln 10), yaklaşık olarak 2.302 değerindedir.
  • Math.LOG2E: e'nin 2 tabanındaki logaritması (log₂e), yaklaşık olarak 1.442 değerindedir.
  • Math.LOG10E: e'nin 10 tabanındaki logaritması (log₁₀e), yaklaşık olarak 0.434 değerindedir.

    console.log(Math.PI);     // 3.141592653589793
    console.log(Math.E);      // 2.718281828459045
    console.log(Math.SQRT2);  // 1.4142135623730951

En Çok Kullanılan Math Metotları

1. Yuvarlama Metotları
  • Math.round(x): Bir sayıyı en yakın tam sayıya yuvarlar. Ondalık kısmı 0.5 ve üzeriyse yukarı, altındaysa aşağı yuvarlar.
    
                console.log(Math.round(4.7));  // 5
                console.log(Math.round(4.4));  // 4
                console.log(Math.round(4.5));  // 5
            
  • Math.ceil(x): Bir sayıyı her zaman yukarı doğru en yakın tam sayıya yuvarlar.
    
                console.log(Math.ceil(4.1));   // 5
                console.log(Math.ceil(4.9));   // 5
                console.log(Math.ceil(-4.1));  // -4
            
  • Math.floor(x): Bir sayıyı her zaman aşağı doğru en yakın tam sayıya yuvarlar (sayının tam kısmını alır).
    
                console.log(Math.floor(4.9));  // 4
                console.log(Math.floor(4.1));  // 4
                console.log(Math.floor(-4.9)); // -5
            
  • Math.trunc(x) (ES6+): Bir sayının ondalık kısmını keser (tam sayı kısmını döndürür). Negatif sayılarda da Math.floor'dan farklı çalışır.
    
                console.log(Math.trunc(4.9));  // 4
                console.log(Math.trunc(-4.9)); // -4
            
2. Min ve Max Değer Bulma
  • Math.min(x, y, ...): Argüman olarak verilen sayılar arasındaki en küçük değeri döndürür.
    
                console.log(Math.min(0, 150, 30, 20, -8)); // -8
            
  • Math.max(x, y, ...): Argüman olarak verilen sayılar arasındaki en büyük değeri döndürür.
    
                console.log(Math.max(0, 150, 30, 20, -8)); // 150
            
  • Array İçindeki Max/Min Değer: Eğer değerler bir dizide ise, Spread Operatörü (ES6+) veya apply() metodu kullanılır.
    
                const sayilar = [1, 5, 2, 8, 3];
                console.log(Math.max(...sayilar));      // 8 (Spread Operatörü ile)
                console.log(Math.min.apply(null, sayilar)); // 1 (apply ile ES5 uyumlu)
            
3. Mutlak Değer ve Üs Alma
  • Math.abs(x): Bir sayının mutlak değerini (sayının sıfıra olan uzaklığını) döndürür.
    
                console.log(Math.abs(-7.25)); // 7.25
                console.log(Math.abs(7.25));  // 7.25
            
  • Math.pow(x, y): x tabanının y üssünü döndürür (xy).
    
                console.log(Math.pow(2, 3));  // 8 (2*2*2)
                console.log(Math.pow(5, 2));  // 25 (5*5)
            
  • Math.sqrt(x): Bir sayının karekökünü döndürür.
    
                console.log(Math.sqrt(64)); // 8
                console.log(Math.sqrt(9));  // 3
            
4. Rastgele Sayı Üretme
  • Math.random(): 0 (dahil) ile 1 (hariç) arasında bir ondalıklı rastgele sayı üretir.
    
                console.log(Math.random()); // Örnek: 0.7460133276707328
            
  • Belirli Bir Aralıkta Rastgele Tam Sayı Üretme:
    
                // 0 ile 99 arasında rastgele tam sayı (0 ve 99 dahil)
                console.log(Math.floor(Math.random() * 100));
    
                // 0 ile 100 arasında rastgele tam sayı (0 ve 100 dahil)
                console.log(Math.floor(Math.random() * 101));
    
                // 1 ile 100 arasında rastgele tam sayı (1 ve 100 dahil)
                console.log(Math.floor(Math.random() * 100) + 1);
    
                // Genel bir fonksiyon: min ve max dahil
                function rastgeleTamSayi(min, max) {
                    return Math.floor(Math.random() * (max - min + 1)) + min;
                }
                console.log(rastgeleTamSayi(10, 20)); // 10 ile 20 arasında rastgele sayı
            
5. Logaritma ve Üstel Fonksiyonlar
  • Math.log(x): Bir sayının doğal logaritmasını (ln x) döndürür.
  • Math.exp(x): Euler sabiti 'e'nin x üssü (ex) değerini döndürür.
  • 
            console.log(Math.log(Math.E)); // 1
            console.log(Math.exp(1));      // Math.E değeri (yaklaşık 2.718)
        
6. Trigonometrik Fonksiyonlar

Aşağıdaki metotlar radyan cinsinden açı değerleri alır ve radyan cinsinden sonuç döndürür. Dereceyi radyana çevirmek için derece * (Math.PI / 180), radyanı dereceye çevirmek için radyan * (180 / Math.PI) kullanabilirsiniz.

  • Math.sin(x): Bir sayının sinüsünü (x radyan cinsinden) döndürür.
  • Math.cos(x): Bir sayının kosinüsünü (x radyan cinsinden) döndürür.
  • Math.tan(x): Bir sayının tanjantını (x radyan cinsinden) döndürür.
  • Math.acos(x), Math.asin(x), Math.atan(x): Arg kosinüs, arg sinüs ve arg tanjant (ters trigonometrik) fonksiyonlardır.
  • Math.atan2(y, x): (y, x) noktasının orijinden (0,0) itibaren x eksenine göre açısını radyan cinsinden döndürür.

    let aciDerece = 90;
    let aciRadyan = aciDerece * (Math.PI / 180);

    console.log(Math.sin(aciRadyan));  // 1 (yaklaşık)
    console.log(Math.cos(aciRadyan));  // 0 (yaklaşık)
    console.log(Math.tan(aciRadyan));  // Çok büyük bir sayı (sonsuza yakın)

    console.log(Math.atan2(1, 1));     // PI/4 radyan (45 derece)

Sonuç

JavaScript'in Math nesnesi, sayısal verilerle çalışan her geliştiricinin bilmesi gereken temel bir araç setidir. Basit yuvarlamalardan karmaşık trigonometrik hesaplamalara kadar geniş bir yelpazede matematiksel işlemleri kolayca yapmanızı sağlar. Özellikle oyun geliştirmede, grafiklerde veya bilimsel uygulamalarda Math nesnesinin ne kadar vazgeçilmez olduğunu göreceksiniz.

Bu metotları projelerinizde kullanarak pratik yapmaya devam edin. Sayıların dünyasında ustalaşmak, kodlama yeteneklerinizi bir üst seviyeye taşıyacaktır!

Webkolog'u takipte kalın!

Hepinize bol kodlu ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder