JavaScript Sayılar (14.Ders) – Masif Dinamik
javascript-dersleri

JavaScript Sayılar (14.Ders)

JavaScript’te yalnızca tek tip numara vardır ve sayılar ondalıklı veya ondalıksız olarak yazılabilir.
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.

Diğer birçok programlama dilinin aksine, JavaScript integers, short, long, floating point vb. gibi farklı sayı türlerini tanımlamaz.

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ğerOndalık Kısımİşaret
52 bits (0 – 51)11 bits (52 – 62)1 bit (63)

 

Ondalık Kısım

Tamsayılar (nokta veya üs notasyonu olmayan sayılar) 15 basamağa kadar doğrudur.
var x = 999999999999999;   // x sonucu 999999999999999
var y = 9999999999999999;  // y sonucu 10000000000000000
Maksimum ondalık sayı 17’dir, ancak kayan nokta aritmetiği her zaman% 100 doğru değildir:
var x = 0.2 + 0.1;         // x toplamı 0.30000000000000004

Yukarıdaki sorunu çözmek için çarpma ve bölme yardımcı olur:
var x = (0.2 * 10 + 0.1 * 10) / 10;       // x sonuç 0.3

 

Sayı ve Dize Ekleme

UYARI !! JavaScript hem ekleme hem de birleştirme için + işlecini kullanır. Sayılar eklenir. Dizeler birleştirilir.
İki sayı eklerseniz sonuç bir sayı olur:
var x = 10;
var y = 20;
var z = x + y;           // z 30 olacaktır. (a number)
İki dize eklerseniz, sonuç bir dize birleşimi olur:
var x = "10";
var y = "20";
var z = x + y;           // z sonucu 1020 (bir string)
Bir sayı ve dize eklerseniz, sonuç bir dize birleşimi olur:
var x = 10;
var y = "20";
var z = x + y;           // z sonucu 1020 (bir string)
Bir dize ve sayı eklerseniz, sonuç bir dize birleştirmesi olur:
var x = "10";
var y = 20;
var z = x + y;           // z sonucu 1020 (a string)
Yaygın bir hata, bu sonucun 30 olmasını beklemektir:
var x = 10;
var y = 20;
var z = "The result is: " + x + y;

halbuki sonuç The result is:1020'dir
Yaygın bir hata, bu sonucun 102030 olmasını beklemektir:
var x = 10;
var y = 20;
var z = "30";
var result = x + y + z;

halbuki sonuç 3030'dur.
  1. JavaScript yorumlayıcısı soldan sağa doğru çalışır.
  2. İlk 10 + 20 eklenir, çünkü x ve y’nin her ikisi de sayıdır.
  3. Daha sonra z + bir dize olduğu için 30 + “30” birleştirilir.

 

Sayısal Dizeler

JavaScript dizeleri sayısal içeriğe sahip olabilir:
var x = 100;         // x bir sayı

var y = "100";       // y bir dize
JavaScript dizeleri tüm sayısal işlemlerde sayılara dönüştürmeye çalışacaktır:
İlginçtir aşağıdaki işlem çalışacaktır:
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)
Son örnekte JavaScript’in , dizeleri birleştirmek için + operatörünü kullandığını biliyoruz.. Diğer operatörleri kullanmadığı için string olmadılar.

NaN – Not a Number

NaN, bir sayının yasal bir sayı olmadığını belirten JavaScript’e ayrılmış bir kelimedir. Sayısal olmayan bir dize ile aritmetik yapmaya çalışmak NaN (Sayı Değil) ile sonuçlanır:
var x = 100 / "Apple";  // x burada NaN (Bir sayı değil)

Ancak, dize sayısal bir değer içeriyorsa sonuç bir sayı olur:
var x = 100 / "10";     // x'in sonucu 10'dur.
Bir değerin sayı olup olmadığını öğrenmek için isNaN () genel JavaScript işlevini kullanabilirsiniz:
var x = 100 / "Apple";
isNaN(x);               // bu değer true döner çünkü x bir sayı değil.
NaN’a dikkat et. Bir matematik işleminde NaN kullanırsanız, sonuç NaN olur:
var x = NaN;
var y = 5;
var z = x + y;         // z NaN not an number yani bir sayı değildir.
Veya sonuç bir birleştirme olabilir:
var x = NaN;
var y = "5";
var z = x + y;         // z sonucu NaN5
NaN bir sayıdır: typeof NaN sayı döndürür:
typeof NaN;            // "number" sonucunu döndürür

Infinity (Sayılarda Sonsuzluk Olayı)

Sonsuzluk (veya -Sonsuzluk), 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.
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.

button_kendin-dene

 

 

0’a (sıfır) bölme de Sonsuzluk üretir:
var x =  2 / 0;       // x sonucu Infinity
var y = -2 / 0;       // y sonucu -Infinity
Sonsuzluk bir sayıdır: typeof Infinity sayı döndürür.
typeof Infinity;     // "number" döndürür.

Hexadecimal (Onaltılık)

JavaScript, önünde 0x varsa onaltılık sabitleri onaltılık olarak yorumlar.
var x = 0xFF;        // x will be 255
Asla önünde sıfır olan bir sayı yazmayın (07 gibi).
Bazı JavaScript sürümleri, sayıların başında sıfır yazıldıysa sayıları sekizlik olarak yorumlar.
Varsayılan olarak, JavaScript sayıları temel 10 ondalık sayı olarak görüntüler.
Ancak, taban 2’den taban 36’ya sayı çıktısı almak için 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

Normalde JavaScript numaraları değişmez (literal) değerlerden oluşturulan ilkel (primitive) değerlerdir:
var x = 123;
Ancak sayılar, yeni anahtar kelimeye sahip nesneler olarak da tanımlanabilir:

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
Sayı nesneleri oluşturmayın. Yürütme hızını yavaşlatır.
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.
Veya daha da kötüsü. Nesneler karşılaştırılamaz:
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.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


Yeni Yazılara Abone Ol



© Copyright 2020, Masif Dinamik