En son web geliştirme öğreticiler
 

JavaScript sayılar


JavaScript sadece bir türü vardır number .

Numbers ile veya ondalık olmadan yazılabilir.


JavaScript Numaraları

JavaScript numbers ile veya ondalık olmadan yazılabilir:

Örnek

var x = 34.00;    // A number with decimals
var y = 34;       // A number without decimals

Ekstra büyük veya çok küçük sayılar bilimsel ile yazılabilir (exponent) notasyonu:

Örnek

var x = 123e5;    // 12300000
var y = 123e-5;   // 0.00123

JavaScript Numaraları Noktası Yüzer Her zaman 64 bit olan

diğer birçok programlama dilleri farklı olarak, JavaScript vb tamsayılar, kısa, uzun, kayan nokta gibi sayıların farklı türde tanımlamıyor

JavaScript numaralar daima uluslararası IEEE 754 standardı ardından, çift hassasiyetli kayar nokta sayılar olarak depolanır.

Sayı 64 bit, bu biçim saklar numaraları (the fraction) bitlerinde depolanır 0 ila 51, bit 52 62 için üs ve bit 63 işareti:

Değer (aka Fraction/Mantissa) üs İşaret
52 bit (0 - 51) 11 bit (52 - 62) 1 bit (63)

Hassas

Tamsayılar (numbers without a period or exponent notation) 15 basamağa kadar hassas olarak kabul edilir.

Örnek

var x = 999999999999999;   // x will be 999999999999999
var y = 9999999999999999;  // y will be 10000000000000000
Kendin dene "

ondalık sayısı 17 olan, ama kayar nokta aritmetik her zaman% 100 doğru:

Örnek

var x = 0.2 + 0.1;         // x will be 0.30000000000000004
Kendin dene "

Yukarıdaki sorunu çözmek için, onları çoğalmak ve bölünmeye yardımcı olur:

Örnek

var x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3
Kendin dene "

onaltılık

onlar 0x öncesinde ise JavaScript onaltılık gibi sayısal sabitleri yorumlar.

Örnek

var x = 0xFF;             // x will be 255
Kendin dene "

Önünde sıfır olan bir numarası yazmaz (like 07) .
onlar başında sıfır yazılır Bazı JavaScript versiyonları sekizlik olarak numaralar yorumlamak.

Varsayılan olarak, JavaScript tabanı 10 onluk değerler numaralarını gösterir.

Ama kullanabilir toString() taban 16 gibi çıkış numaralarına yöntemi (hex) , taban 8 (octal) , ya da taban 2'ye (binary) .

Örnek

var myNumber = 128;
myNumber.toString(16);     // returns 80
myNumber.toString(8);      // returns 200
myNumber.toString(2);      // returns 10000000
Kendin dene "

Sonsuzluk

Infinity (or -Infinity) Eğer mümkün olan en büyük sayı dışında bir sayısını hesaplamak ise JavaScript dönecektir değerdir.

Örnek

var myNumber = 2;
while (myNumber != Infinity) {          // Execute until Infinity
    myNumber = myNumber * myNumber;
}
Kendin dene "

0 ile bölme (zero) da Sonsuz oluşturur:

Örnek

var x =  2 / 0;          // x will be Infinity
var y = -2 / 0;          // y will be -Infinity
Kendin dene "

Sonsuz bir sayıdır: typeOf Infinity sayısını döndürür.

Örnek

typeof Infinity;        // returns "number"
Kendin dene "

NaN - Sayı Değil

NaN Değerin sayı olmadığını belirten bir JavaScript ayrılmış bir kelimedir.

Sonuçlanacak bir sayısal olmayan dize ile aritmetik yapmaya çalışıyor NaN (Sayı Değil):

Örnek

var x = 100 / "Apple";  // x will be NaN (Not a Number)
Kendin dene "

dize sayısal bir değer içeriyorsa Ancak, sonuç sayı olacaktır:

Örnek

var x = 100 / "10";     // x will be 10
Kendin dene "

Sen genel JavaScript işlevini kullanabilirsiniz isNaN() Değerin sayı olup olmadığını öğrenmek için.

Örnek

var x = 100 / "Apple";
isNaN(x);               // returns true because x is Not a Number
Kendin dene "

NaN dikkat edin. Bir matematiksel operasyonda NaN kullanırsanız, sonuç da NaN olacaktır:

Örnek

var x = NaN;
var y = 5;
var z = x + y;         // z will be NaN
Kendin dene "

Ya sonuç birleştirme olabilir:

Örnek

var x = NaN;
var y = "5";
var z = x + y;         // z will be NaN5
Kendin dene "

NaN bir sayıdır ve typeof NaN sayısını döndürür:

Örnek

typeof NaN;             // returns "number"
Kendin dene "

Sayılar Nesneler olabilir

Normal olarak bir JavaScript numaraları ilkel değerleri değişmez oluşturulur: var x = 123

Ancak sayıları da kelime yeni nesneleri gibi tanımlanabilir: var y = new Number(123)

Örnek

var x = 123;
var y = new Number(123);

// typeof x returns number
// typeof y returns object
Kendin dene "

Sayı nesneleri oluşturmayın. Bu yürütme hızını yavaşlatır.
new anahtar kelime kodu zorlaştırmaktadır. Bu, bazı beklenmeyen sonuçlar üretebilir:

Kullanırken == eşitlik operatörü, eşit sayılar eşit görünür:

Örnek

var x = 500;             
var y = new Number(500);

// (x == y) is true because x and y have equal values
Kendin dene "

=== eşitlik operatörü kullanırken === operatörü tipi ve değeri hem de eşitlik beklemektedir çünkü eşit sayılar, eşit değildir.

Örnek

var x = 500;             
var y = new Number(500);

// (x === y) is false because x and y have different types
Kendin dene "

Ya da daha kötüsü. Nesneler kıyaslanamaz:

Örnek

var x = new Number(500);             
var y = new Number(500);

// (x == y) is false because objects cannot be compared
Kendin dene "

JavaScript nesneleri karşılaştırma yapılamaz.


Egzersizleri ile Yourself test edin!

Egzersiz 1 » Alıştırma 2» Egzersiz 3 » Alıştırma 4»