var x = 3.14; // Ondalıklı var y = 3; // Ondalıksız
çok büyük veya çok küçük sayılar e komponentiyle yazılabilir.
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
e den sonraki sayı sıfır sayısını veya eksi olarak yazılırsa atılacak virgül sayısını belirtir.
Javascript Sayıları her zaman 64 bittir.
JavaScript’te tüm sayılar 64-bit formatında tutulur IEEE-754, buna “double precision” da denir.
Aşağıda tabloda js’de sayıların alabileceği formatı gösteriyor.
Değer | Ondalık Kısım | İşaret |
---|---|---|
52 bits (0 – 51) | 11 bits (52 – 62) | 1 bit (63) |
Ondalık Kısım
var x = 999999999999999; // x sonucu 999999999999999 var y = 9999999999999999; // y sonucu 10000000000000000
var x = 0.2 + 0.1; // x toplamı 0.30000000000000004
var x = (0.2 * 10 + 0.1 * 10) / 10; // x sonuç 0.3
Sayı ve Dize Ekleme
var x = 10; var y = 20; var z = x + y; // z 30 olacaktır. (a number)
var x = "10"; var y = "20"; var z = x + y; // z sonucu 1020 (bir string)
var x = 10; var y = "20"; var z = x + y; // z sonucu 1020 (bir string)
var x = "10"; var y = 20; var z = x + y; // z sonucu 1020 (a string)
var x = 10; var y = 20; var z = "The result is: " + x + y; halbuki sonuç The result is:1020'dir
var x = 10; var y = 20; var z = "30"; var result = x + y + z; halbuki sonuç 3030'dur.
- JavaScript yorumlayıcısı soldan sağa doğru çalışır.
- İlk 10 + 20 eklenir, çünkü x ve y’nin her ikisi de sayıdır.
- Daha sonra z + bir dize olduğu için 30 + “30” birleştirilir.
Sayısal Dizeler
var x = 100; // x bir sayı var y = "100"; // y bir dize
var x = "100"; var y = "10"; var z = x / y; // z 10 olacaktır.
Sanki JavaScript’in gizli bir yapay zekası var gibi değil mi. Ne yapmak istediğinize biraz yardımcı oluyor diyebiliriz.
Aşağıdaki kodları inceleyelim. Bu kodlar çalışacaktır.
var x = "100"; var y = "10"; var z = x * y; // z sonucu: 1000
Bu kodlarımız da çalışacak.
var x = "100"; var y = "10"; var z = x - y; // z 90
Fakat aşağıdaki kodlar çalışmayacak.
var x = "100"; var y = "10"; var z = x + y; // z nin sonucu 110 olmayacaktır. (Sonuç : 10010)
NaN – Not a Number
var x = 100 / "Apple"; // x burada NaN (Bir sayı değil)
var x = 100 / "10"; // x'in sonucu 10'dur.
isNaN ()
genel JavaScript işlevini kullanabilirsiniz:var x = 100 / "Apple"; isNaN(x); // bu değer true döner çünkü x bir sayı değil.
var x = NaN; var y = 5; var z = x + y; // z NaN not an number yani bir sayı değildir.
var x = NaN; var y = "5"; var z = x + y; // z sonucu NaN5
typeof NaN; // "number" sonucunu döndürür
Infinity (Sayılarda Sonsuzluk Olayı)
var benimSayim = 2; while (benimSayim != Infinity) { // Sonsuzluğa kadar yürüt demek benimSayim = benimSayim * benimSayim; }
Bu çok güzel bir örnek hadi bunu kendimiz yapalım ve görelim.
var x = 2 / 0; // x sonucu Infinity var y = -2 / 0; // y sonucu -Infinity
typeof Infinity; // "number" döndürür.
Hexadecimal (Onaltılık)
var x = 0xFF; // x will be 255
toString ()
yöntemini kullanabilirsiniz.Hexadecimal: 16’lık taban
Decimal : 10’luk taban
Octal: 8’lik taban
Binary: 2’lik tabandır.
var benimSayim = 32; myNumber.toString(10); // sonuç 32 myNumber.toString(32); // sonuç 10 myNumber.toString(16); // sonuç 20 myNumber.toString(8); // sonuç 40 myNumber.toString(2); // sonuç 100000
Sayılar Nesne Olabilir
var x = 123;
var y = new Number(123);
var x = 123; var y = new Number(123); // typeof x sayı (number) döner // typeof y nesne (object) döner
new
anahtar kelime kodu karmaşık hale getirir. Bu bazı beklenmedik sonuçlar doğurabilir:==
işlecini kullanırken eşit sayılar eşittir:
var x = 500; var y = new Number(500); // (x == y) true döner çünkü x ve y eşit değerlerdir.
===
işleci kullanılırken eşit sayılar eşit değildir, çünkü ===
işleci hem tür hem de değerde eşitlik bekler.var x = 500; var y = new Number(500); // (x === y) false döner çünkü x ve y farklı type'lara sahiptir.
var x = new Number(500); var y = new Number(500); // (x == y) false döner çünkü objeler karşılaştırılamazlar.
Son kısımda nesnelerin karşılaştırılamayacağı gerçeğini tekrar hatırlamış olduk.
JavaScript Sayılar dersimiz burada bitmiştir. Bir dersimiz JavaScript’te Sayılar Metodu. Görüşmez Üzere.