JavaScript Numaraları
JavaScript'in yalnızca bir tür numarası vardır. Sayılar ondalıklı veya ondalıksız yazılabilir.
Örnek
let x = 3.14; // A number with decimals
let y = 3; // A number without decimals
Çok büyük veya çok küçük sayılar bilimsel (üslü) gösterimle yazılabilir:
Örnek
let x = 123e5; // 12300000
let y = 123e-5; // 0.00123
JavaScript Numaraları Daima 64-bit Kayan Noktadır
Diğer birçok programlama dilinden farklı olarak JavaScript, tamsayılar, kısa, uzun, kayan nokta vb. gibi farklı sayı türlerini tanımlamaz.
JavaScript numaraları, uluslararası IEEE 754 standardına uygun olarak her zaman çift duyarlıklı kayan noktalı sayılar olarak saklanır.
Bu biçim, sayıları 64 bit olarak saklar; burada sayı (kesir) 0 ila 51 bitlerinde, üs 52 ila 62 bitlerinde ve işaret bit 63'te saklanır:
Değer (aka Kesir/Mantis) | üs | İşaret |
---|---|---|
52 bit (0 - 51) | 11 bit (52 - 62) | 1 bit (63) |
Tamsayı Hassasiyeti
Tam sayılar (nokta veya üs gösterimi olmayan sayılar) 15 basamağa kadar doğrudur.
Örnek
let x = 999999999999999; // x will be 999999999999999
let y = 9999999999999999; // y will be 10000000000000000
Maksimum ondalık sayı 17'dir.
Yüzer Hassasiyet
Kayan nokta aritmetiği her zaman %100 doğru değildir:
let x = 0.2 + 0.1;
Yukarıdaki sorunu çözmek için çarpmaya ve bölmeye yardımcı olur:
let x = (0.2 * 10 + 0.1 * 10) / 10;
Sayılar ve Dizeler Ekleme
UYARI !!
JavaScript, hem ekleme hem de birleştirme için + operatörünü kullanır.
Numaralar eklenir. Dizeler birleştirilir.
İki sayı eklerseniz, sonuç bir sayı olacaktır:
Örnek
let x = 10;
let y = 20;
let z = x + y;
İki dize eklerseniz, sonuç bir dize bitiştirme olacaktır:
Örnek
let x = "10";
let y = "20";
let z = x + y;
Bir sayı ve bir dize eklerseniz, sonuç bir dize bitiştirme olacaktır:
Örnek
let x = 10;
let y = "20";
let z = x + y;
Bir dize ve bir sayı eklerseniz, sonuç bir dize bitiştirme olacaktır:
Örnek
let x = "10";
let y = 20;
let z = x + y;
Bu sonucun 30 olmasını beklemek yaygın bir hatadır:
Örnek
let x = 10;
let y = 20;
let z = "The result is: " + x + y;
Bu sonucun 102030 olmasını beklemek yaygın bir hatadır:
Örnek
let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;
JavaScript yorumlayıcısı soldan sağa doğru çalışır.
İlk 10 + 20 eklenir çünkü x ve y'nin ikisi de sayıdır.
Ardından, z bir dize olduğu için 30 + "30" birleştirilir.
Sayısal Diziler
JavaScript dizeleri sayısal içeriğe sahip olabilir:
let x = 100; // x is a number
let y = "100"; // y is a
string
JavaScript, tüm sayısal işlemlerde dizeleri sayılara dönüştürmeye çalışır:
Bu çalışacak:
let x = "100";
let y = "10";
let z = x / y;
Bu da işe yarayacaktır:
let x = "100";
let y = "10";
let z = x * y;
Ve bu işe yarayacak:
let x = "100";
let y = "10";
let z = x - y;
Ama bu işe yaramayacak:
let x = "100";
let y = "10";
let z = x + y;
Son örnekte JavaScript, dizeleri birleştirmek için + operatörünü kullanır.
NaN - Sayı Değil
NaN
bir sayının yasal bir sayı olmadığını belirten JavaScript'e ayrılmış bir kelimedir.
Sayısal olmayan bir dizeyle aritmetik yapmaya çalışmak NaN
(Sayı Değil):
Örnek
let x = 100 / "Apple";
Ancak, dize sayısal bir değer içeriyorsa sonuç bir sayı olacaktır:
Örnek
let x = 100 / "10";
isNaN()
Bir değerin sayı olup olmadığını öğrenmek için global JavaScript işlevini kullanabilirsiniz:
Örnek
let x = 100 / "Apple";
isNaN(x);
Dikkat edin NaN
. NaN
Matematiksel bir işlemde kullanırsanız , sonuç da şöyle olacaktır NaN
:
Örnek
let x = NaN;
let y = 5;
let z = x + y;
Veya sonuç, NaN5 gibi bir birleştirme olabilir:
Örnek
let x = NaN;
let y = "5";
let z = x + y;
NaN
bir sayıdır: typeof NaN
döndürür number
:
Örnek
typeof NaN;
Sonsuzluk
Infinity
(veya -Infinity
), mümkün olan en büyük sayının dışında bir sayı hesaplarsanız JavaScript'in döndüreceği değerdir.
Örnek
let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
myNumber = myNumber * myNumber;
}
0'a (sıfır) bölme ayrıca şunları üretir Infinity
:
Örnek
let x = 2 / 0;
let y = -2 / 0;
Infinity
bir sayıdır: typeof Infinity
döndürür number
.
Örnek
typeof Infinity;
onaltılık
JavaScript, sayısal sabitleri, başında 0x varsa, onaltılık olarak yorumlar.
Örnek
let x = 0xFF;
Asla başında sıfır olan bir sayı yazmayın (07 gibi).
Bazı JavaScript sürümleri, başta sıfır ile yazılmışsa sayıları sekizli olarak yorumlar.
Varsayılan olarak JavaScript, sayıları 10 tabanlı ondalık basamak olarak görüntüler.
Ancak, 2 tabanından 36 tabanına
kadar sayılarıntoString()
çıktısını almak için yöntemi kullanabilirsiniz .
Onaltılık taban 16'dır . Ondalık taban 10'dur . Sekizli taban 8'dir . İkili taban 2'dir .
Örnek
let myNumber = 32;
myNumber.toString(10);
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);
Nesne Olarak JavaScript Numaraları
Normalde JavaScript numaraları, değişmez değerlerden oluşturulan ilkel değerlerdir:
let x = 123;
Ancak sayılar, anahtar kelimeyle nesneler olarak da tanımlanabilir new
:
let y = new Number(123);
Örnek
let x = 123;
let y = new Number(123);
Number nesneleri oluşturmayın.
Anahtar new
kelime, kodu karmaşıklaştırır ve yürütme hızını yavaşlatır.
Sayı Nesneleri beklenmeyen sonuçlar üretebilir:
Operatörü kullanırken ==
, x ve y eşittir :
let x = 500;
let y = new Number(500);
Operatörü kullanırken ===
, x ve y eşit değildir .
let x = 500;
let y = new Number(500);
(x==y)
ve arasındaki farka dikkat edin (x===y)
.
(x == y)
doğru ya da yanlış?
let x = new Number(500);
let y = new Number(500);
(x === y)
doğru ya da yanlış?
let x = new Number(500);
let y = new Number(500);
Comparing two JavaScript objects always returns false.
Complete JavaScript Number Reference
For a complete Number reference, visit our:
Complete JavaScript Number Reference.
The reference contains descriptions and examples of all Number properties and methods.