JavaScript Dilinde JS Numbers Kullanımı
JavaScript, web geliştirmenin temelini oluşturan dinamik bir programlama dilidir. Bu dilin en temel ve sıkça kullanılan veri tiplerinden biri de sayılardır (Numbers). JavaScript'teki sayılar, hem tam sayıları (integer) hem de ondalıklı sayıları (floating-point) temsil edebilir ve esnek yapısıyla matematiksel işlemler için güçlü bir temel sunar.
Sözdizimi
JavaScript'te sayıları tanımlamak son derece basittir. Değişkenlere doğrudan sayısal değerler atayarak veya Number objesini kullanarak sayıları oluşturabilirsiniz.
const tamSayi = 42;
const ondalikliSayi = 3.14;
const negatifSayi = -5;
const bilimselSayi = 1.23e5; // 123000
const hexadecimalSayi = 0xFF; // 255
const octalSayi = 0o377; // 255 (modern JS'te 0o öneki ile)
const binarySayi = 0b11111111; // 255
const numberObjesi = new Number(100); // Nesne olarak sayı oluşturma (nadiren kullanılır)
Yukarıdaki örnekler, JavaScript'te sayıların nasıl farklı şekillerde tanımlanabileceğini göstermektedir. Çoğu durumda, doğrudan sayısal değer ataması tercih edilir.
JavaScript'teki sayılar, 64-bit çift duyarlıklı kayan nokta sayıları (double-precision floating-point numbers) olarak IEEE 754 standardına göre saklanır. Bu, hem tam sayıları hem de ondalıklı sayıları temsil edebildikleri anlamına gelir. Belirli sınırlar dahilinde, tam sayı değerleri de bu kayan nokta formatında hassasiyet kaybı olmadan saklanabilir.
Sayılar, decimal (onluk), hexadecimal (onaltılık, 0x öneki), octal (sekizlik, 0o öneki) ve binary (ikilik, 0b öneki) formatlarında ifade edilebilir. Ayrıca, çok büyük veya çok küçük sayıları bilimsel gösterim (örneğin, 1.23e-5) kullanarak da tanımlamak mümkündür.
JavaScript'in sayıları ayrıca bazı özel değerlere sahiptir: NaN (Not-a-Number), geçersiz veya tanımsız matematiksel işlemlerin sonucunu temsil eder. Infinity ve -Infinity ise sıfıra bölme veya sayısal limitlerin aşılması gibi durumlarda ortaya çıkan sonsuz pozitif ve negatif değerlerdir.
Pratik Kullanım Örnekleri
Sayı tanımlamaları ve aritmetik işlemler, JavaScript'te sıkça karşılaşılan senaryolardır.
// Örnek 1: Temel Sayı Tanımlamaları ve İşlemler
const sayi1 = 10;
const sayi2 = 5;
console.log(sayi1 + sayi2); // Çıktı: 15
console.log(sayi1 - sayi2); // Çıktı: 5
console.log(sayi1 * sayi2); // Çıktı: 50
console.log(sayi1 / sayi2); // Çıktı: 2
console.log(sayi1 % sayi2); // Çıktı: 0 (Modül operatörü)
Kayan noktalı sayılarla çalışırken hassasiyetin önemli olduğu durumlar olabilir.
// Örnek 2: Kayan Noktalı Sayılar ve Hassasiyet
const fiyat1 = 0.1;
const fiyat2 = 0.2;
console.log(fiyat1 + fiyat2); // Çıktı: 0.30000000000000004 (Kayan nokta hassasiyeti)
// Hassasiyet sorununu aşmak için bir yöntem (örneğin, tam sayılarla çalışıp sonra bölme)
console.log((fiyat1 * 10 + fiyat2 * 10) / 10); // Çıktı: 0.3
Özel sayı değerleri olan NaN ve Infinity, belirli durumlarda matematiksel işlemlerin sonucunu belirtmek için kullanılır.
// Örnek 3: Özel Sayı Değerleri (NaN, Infinity)
console.log(0 / 0); // Çıktı: NaN (Tanımsız işlem)
console.log(10 / 0); // Çıktı: Infinity (Pozitif sonsuz)
console.log(-10 / 0); // Çıktı: -Infinity (Negatif sonsuz)
console.log(isNaN(0 / 0)); // Çıktı: true (Bir değerin NaN olup olmadığını kontrol eder)
console.log(isFinite(10 / 0)); // Çıktı: false (Bir değerin sonlu olup olmadığını kontrol eder)
Farklı sayı tabanlarında değer tanımlama ve bilimsel gösterim, özel durumlar için kullanışlıdır.
// Örnek 4: Sayı Tabanları ve Bilimsel Gösterim
const hexValue = 0xA; // Onaltılık 10
const binValue = 0b1010; // İkilik 10
const sciValue = 2.5e3; // 2.5 * 10^3 = 2500
console.log(hexValue); // Çıktı: 10
console.log(binValue); // Çıktı: 10
console.log(sciValue); // Çıktı: 2500
Önemli Notlar
JavaScript'teki tüm sayılar 64-bit kayan nokta (double-precision floating-point) formatında saklanır. Bu, tam sayılar için bile geçerlidir ve belirli büyük tam sayılarda hassasiyet kaybına yol açabilir (
Number.MAX_SAFE_INTEGERveNumber.MIN_SAFE_INTEGERdışındaki değerler için).Kayan nokta aritmetiği nedeniyle, bazı ondalıklı sayı işlemleri beklenen kesin sonucu vermeyebilir (örneğin,
0.1 + 0.2). Finansal hesaplamalar gibi hassasiyet gerektiren durumlarda bu durum göz önünde bulundurulmalıdır.NaN(Not-a-Number), kendisiyle bile eşit değildir (NaN === NaNifadesifalsedöner). Bir değerinNaNolup olmadığını kontrol etmek içinNumber.isNaN()veya globalisNaN()fonksiyonlarını kullanın.BigIntveri tipi, JavaScript'in standartNumbertipinin ötesindeki çok büyük tam sayıları güvenli bir şekilde temsil etmek için kullanılır. EğerNumber.MAX_SAFE_INTEGER'dan büyük tam sayılarla çalışmanız gerekiyorsaBigIntdüşünülmelidir.Sayıları string'e dönüştürmek için
String()fonksiyonu,.toString()metodu veya şablon değişmezleri (template literals) kullanılabilir. String'leri sayıya dönüştürmek için iseNumber(),parseInt()veyaparseFloat()fonksiyonları mevcuttur.
        
                
            
            
Yorum yap
Yorumlar