JavaScript Sayıları
- Önceki Sayfa JS String Şablonları
- Sonraki Sayfa JS BigInt
JavaScript sadece bir sayısal türü vardır.
Sayı yazarken nokta koyup koymamak serbesttir.
JavaScript Sayısal
JavaScript sayılarını yazarken hem nokta ile hem de nokta ile belirlenmemiş olarak yazabilirsiniz:
Örnek
var x = 3.14; // nokta ile belirlenmiş değer var y = 3; // nokta ile belirlenmemiş değer
Çok büyük veya çok küçük sayılar bilimsel sayı formatıyla yazılabilir:
Örnek
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
JavaScript sayıları daima 64 bit kayan nokta sayısıdır
Birçok diğer programlama dilinden farklı olarak, JavaScript farklı türdeki sayıları, tamsayı, kısa, uzun, kayan nokta vb. olarak tanımlamaz.
JavaScript sayıları, uluslararası IEEE 754 standartlarına göre daima ikili doğal sayı olarak saklanır.
Bu format 64 bit sayıyı saklar, 0 ila 51 arasında sayı (parça) saklanır, 52 ila 62 arasında sayısal, 63 bit işaret saklanır:
Değer (akademik adı fraction/mantissa) | Sayısal | İşaret |
---|---|---|
52 bits(0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
Doğruluk
Tamsayılar (katsayı veya bilimsel sayı formatı kullanılmadan) 15 basamağa doğru olur.
Örnek
var x = 999999999999999; // x 999999999999999 olacaktır var y = 9999999999999999; // y 10000000000000000 olacaktır
Ondalık sayıların en büyük sayısı 17 basamaktır, ancak kayan nokta hesapları her zaman %100 doğru değildir:
Örnek
var x = 0.2 + 0.1; // x 0.30000000000000004 olacaktır
Yukarıdaki sorunu çözmek için çarpma ve bölme kullanılır:
Örnek
var x = (0.2 * 10 + 0.1 * 10) / 10; // x 0.3 olacaktır
Sayı ve dizi ekleme
Uyarı!!
JavaScript'in toplama ve birleştirme (concatenation) işlemleri + işaretini kullanır.
Sayılar toplama ile. Diziler birleştirme ile.
İki sayıya eklerseniz, sonuç da bir sayı olacaktır:
Örnek
var x = 10; var y = 20; var z = x + y; // z 30 olacaktır (bir sayı)
İki diziye eklerseniz, sonuç da dizi birleştirme olur:
Örnek
var x = "10"; var y = "20"; var z = x + y; // z 1020 (dizge) olacak
Bir sayı ve bir diziye eklerseniz, sonuç da dizi birleştirme olur:
Örnek
var x = 10; var y = "20"; var z = x + y; // z olacaktır 1020 (bir dizi)
Eğer bir dizge ve bir sayıyı birleştirirseniz, sonuç da dizge birleştirir:
Örnek
var x = "10"; var y = 20; var z = x + y; // z 1020 (dizge) olacak
Yaygın bir hata, sonuçun 30 olacağını düşünmektir:
Örnek
var x = 10; var y = 20; var z = "The result is: " + x + y;
Yaygın bir hata, sonuçun 102030 olacağını düşünmektir:
Örnek
var x = 10; var y = 20; var z = "30"; var result = x + y + z;
JavaScript soldan sağa doğru derlemektedir.
Çünkü x ve y her ikisi de sayı, 10 + 20 birleştirilir.
Çünkü z dizge, 30 + "30" birleştirilir.
Sayı dizgeleri
JavaScript dizgeleri sayı içeriği olabilir:
var x = 100; // x sayı var y = "100"; // y dizge
Tüm sayı işlemlerinde, JavaScript dizgeleri sayıya dönüştürmeye çalışır:
Bu örnek şu şekilde çalışır:
var x = "100"; var y = "10"; var z = x / y; // z 10 olacak
Bu örnek de aynen çalışacaktır:
var x = "100"; var y = "10"; var z = x * y; // z 1000 olacak
Bu örnek şu şekilde çalışır:
var x = "100"; var y = "10"; var z = x - y; // z 90 olacak
Ancak bu örnek bu şekilde çalışmayacak:
var x = "100"; var y = "10"; var z = x + y; // z 110 olmayacak (10010 olacak)
Sonraki örnekte, JavaScript + işlevini dizge birleştirmek için kullanır.
NaN - Değersiz
NaN
JavaScript'in saklı kelimelerinden biri, bir sayının geçerli bir sayı olmadığını belirtir.
Bir sayı olmayan dizi ile bölme işlemi NaN (Not a Number) alacaksınız:
Örnek
var x = 100 / "Apple"; // x NaN (Not a Number) olacak
Ancak, eğer bir dizi sayı içeriyorsa sonuç bir sayı olacaktır:
Örnek
var x = 100 / "10"; // x 10 olacak
Küresel JavaScript fonksiyonunu kullanabilirsiniz isNaN()
bir değerin sayı olup olmadığını belirlemek için:
Örnek
var x = 100 / "Apple"; isNaN(x); // Dönüş true, çünkü x sayı değil
dikkatli olun NaN
dikkatli olun. NaN
ise sonuç da NaN
:
Örnek
var x = NaN; var y = 5; var z = x + y; // z NaN olacaktır
Sonuç belki de
Örnek
var x = NaN; var y = "5"; var z = x + y; // z NaN5 olacaktır
NaN
sayısal,typeof NaN
döndürür number
:
Örnek
typeof NaN; // "number" döndürür
Infinity
Infinity
veya -Infinity
döndürür.
Örnek
var myNumber = 2; while (myNumber != Infinity) { // Infinity'ye kadar çalıştırılır myNumber = myNumber * myNumber; }
0 (sıfır) ile bölme de Infinity
:
Örnek
var x = 2 / 0; // x Infinity olacaktır var y = -2 / 0; // y -Infinity olacaktır
Infinity
sayısal:typeOf Infinity
döndürür number
.
Örnek
typeof Infinity; // "number" döndürür
onaltılık
JavaScript, öncesi ile 0x
sayısal sabitlerin değerini onaltılık olarak yorumlar.
Örnek
var x = 0xFF; // x 255 olacaktır.
Asla sayıları önceden sıfırla yazmayın (örneğin 07).
Bazı JavaScript sürümleri önceden sıfır olan sayıları sekizlik olarak yorumlar.
Varsayılan olarak, Javascript sayıları ondalık olarak görüntüler.
Ancak, kullanabilirsiniz toString()
Bu yöntem sayıları onaltılık, sekizlik veya ikili olarak çıktıya döndürür.
Örnek
var myNumber = 128; myNumber.toString(16); // 80 döndürür myNumber.toString(8); // 200 döndürür myNumber.toString(2); // 10000000 döndürür
Sayılar nesneler olabilir
Genel olarak, JavaScript sayıları doğrudan değerlerle oluşturulur: var x = 123
Ancak anahtar kelime kullanılarak da tanımlanabilir: new
Nesne olarak tanımlanmıştır: var y = new Number(123)
Örnek
var x = 123; var y = new Number(123); // typeof x döner number // typeof y döner object
Sayısal nesneler oluşturmayın. Bu, çalışma hızını yavaşlatacaktır.
new
Anahtar kelimeler kodu karmaşıklaştırır ve bazı beklenmedik sonuçlar yaratır:
Kullanılırken ==
Eşit işleç kullanıldığında, eşit olan sayılar eşit görünür:
Örnek
var x = 500; var y = new Number(500); // (x == y) true çünkü x ve y'nin değerleri eşittir
Kullanılırken ===
Eşit işleçten sonra, eşit olan sayılar eşit görünmez çünkü: ===
İşleçler tür ve değerlerin aynı zamanda eşit olması gerektiğini gerektirir.
Örnek
var x = 500; var y = new Number(500); // (x === y) false çünkü x ve y'nin türleri farklı
Daha kötü. Nesneler karşılaştırılamaz:
Örnek
var x = new Number(500); var y = new Number(500); // (x == y) false çünkü nesneler karşılaştırılamaz
JavaScript nesneleri karşılaştırılamaz.
- Önceki Sayfa JS String Şablonları
- Sonraki Sayfa JS BigInt