JavaScript Sayıları

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

Kendi kendine deneyin

Ç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

Kendi kendine deneyin

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

Kendi kendine deneyin

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

Kendi kendine deneyin

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

Kendi kendine deneyin

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ı)

Kendi kendine deneyin

İki diziye eklerseniz, sonuç da dizi birleştirme olur:

Örnek

var x = "10";
var y = "20";
var z = x + y;           // z 1020 (dizge) olacak

Kendi kendine deneyin

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)

Kendi kendine deneyin

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

Kendi kendine deneyin

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;

Kendi kendine deneyin

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;

Kendi kendine deneyin

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

Kendi kendine deneyin

Bu örnek de aynen çalışacaktır:

var x = "100";
var y = "10";
var z = x * y;       // z 1000 olacak

Kendi kendine deneyin

Bu örnek şu şekilde çalışır:

var x = "100";
var y = "10";
var z = x - y;      // z 90 olacak

Kendi kendine deneyin

Ancak bu örnek bu şekilde çalışmayacak:

var x = "100";
var y = "10";
var z = x + y;       // z 110 olmayacak (10010 olacak)

Kendi kendine deneyin

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

Kendi kendine deneyin

Ancak, eğer bir dizi sayı içeriyorsa sonuç bir sayı olacaktır:

Örnek

var x = 100 / "10";     // x 10 olacak

Kendi kendine deneyin

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

Kendi kendine deneyin

dikkatli olun NaNdikkatli olun. NaNise sonuç da NaN:

Örnek

var x = NaN;
var y = 5;
var z = x + y;         // z NaN olacaktır

Kendi kendine deneyin

Sonuç belki de

Örnek

var x = NaN;
var y = "5";
var z = x + y;         // z NaN5 olacaktır

Kendi kendine deneyin

NaN sayısal,typeof NaN döndürür number:

Örnek

typeof NaN;             // "number" döndürür

Kendi kendine deneyin

Infinity

Infinity veya -Infinitydöndürür.

Örnek

var myNumber = 2;
while (myNumber != Infinity) {          // Infinity'ye kadar çalıştırılır
    myNumber = myNumber * myNumber;
}

Kendi kendine deneyin

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

Kendi kendine deneyin

Infinity sayısal:typeOf Infinity döndürür number.

Örnek

typeof Infinity;        // "number" döndürür

Kendi kendine deneyin

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.

Kendi kendine deneyin

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

Kendi kendine deneyin

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

Kendi kendine deneyin

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

Kendi kendine deneyin

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ı

Kendi kendine deneyin

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

Kendi kendine deneyin

JavaScript nesneleri karşılaştırılamaz.