Numbers

Sayı değeri, herhangi bir sayısal karakter dizisinden oluşur. Örneğin:

5

Sayı veri türü, sayısal kavramları temsil eden birkaç özel global özellik de içerir. Örneğin Infinity ve NaN. Değer, sayı olmayan değerler üzerinde matematiksel hesaplamalar yapmaya çalışmanın potansiyel sonucu olarak "sayı değil" anlamına gelir.

Sayı nesnesi

Number() işlevine bir değer iletildiğinde, bu değer eşdeğer sayıya dönüştürülür. Örneğin, sayısal bir dize, eşdeğer bir temel sayı karakteriyle sonuçlanır:

Number( "10" );
> 10

Number() öğesine false veya null değeri iletildiğinde 0 değeri, true değeri ise 1 değerini döndürür.

Number( null );
> 0

Number( false );
> 0

Number( true );
> 1`

Bir değer dönüştürülemiyorsa (undefined veya sayısal olmayan karakterler içeren bir dizede olduğu gibi) Number işlevi NaN değerini döndürür:

Number( undefined );
> NaN

Number( "The number 3." );
> NaN

Prototip devralmada açıklandığı üzere, değişmez sayı yerine Number nesnesi oluşturduğundan, büyük olasılıkla Number nesnesini oluşturucu olarak kullanmak için çok az bir nedeniniz olacaktır.

let numObject = new Number( 15 );

numObject;
> Number { 15 }

Bu nesne, matematiksel işlemler için kendisine atanan değer olarak davranır, ancak veri türleri eşleşmediğinden ve değişmez bir değere göre herhangi bir pratik fayda sağlamadan sayı değişmez değerlerine karşı katı eşitlik karşılaştırmalarında başarısız olur.

let tenObject = new Number( 10 );

tenObject + 5;
> 15

tenObject === 10;
> false

Kayan değerler ve tam sayılar

JavaScript'in yalnızca bir sayı türü vardır: -2^1024 ile 2^1024 arasında 64 bit IEEE 754-1985 çift duyarlıklı kayan nokta sayıları. JavaScript herhangi bir sayıyı bellekte depolamadan önce, bu sayıyı float olarak da adlandırılan bir ikili kayan nokta sayısına dönüştürür.

Bu 64 bit depolama (bir pozitif veya negatif "işaret" biti, üs için 11 bit ve bir kesir için 52 bit), izin verilen bir aralığa uymayan herhangi bir basamakta hassasiyet hatalarına neden olabilir. Bu sınırlama, JavaScript'in sayı veri türünden kaynaklanır.

0.1 + 0.7
> 0.7999999999999999

Sayı değerleri, bunun yerine, -(2^53 − 1) ile 2^53 − 1 arasında kesirsiz bir kayan nokta olan tam sayı olarak depolanabilir. Kayan değerler ve tam sayılar aynı temel şekilde depolandığından, bu sayıların çalışma şeklinde pratik bir fark yoktur. Bununla birlikte, kesinlik hatalarını önlemek için mümkün olduğunda tamsayı kullanmanızı öneririz.

Sayı operatörleri

Standart matematiksel operatörleri temel sayı sayılarıyla kullandığınızda, matematiksel işlem sırası geçerlidir. Parantez içine alınmış tüm ifadeler önce değerlendirilir, ardından üsler, çarpma, bölme, toplama ve çıkarma işlemleri takip edilir.

Operatör Ad Açıklama Kullanım Sonuç
+ Toplama 2+2 4
- Çıkarma 4-2 2
* Çarpım 2*5 10
/ Grup 10/5 2
++ Artış Sayıya bir ekler 2++ 3
-- Azalt Sayıdan bir çıkarır 3-- 2
** Üs İlk
işleneninin, ikinci işlenenin kuvvetine yükseltilmesi sonucunu döndürür.
2**4 16
% Kalan İlk
işleneni ikinci işlenene bölündüğünde kalan kısmını döndürür.
12%5 2

Bir değişkenin değeri üzerinde matematiksel işlem gerçekleştirmek ve yeni hesaplanan değeri hemen değişkene atamak için matematiksel atama operatörlerini de kullanabilirsiniz.

Operatör Ad Kullanım
+= Ekleme ataması myValue += 2
-= Çıkarma ataması myValue -= 2
*= Çarpma ataması myValue *= 2
/= Bölüm ataması myValue /= 2
**= Üs ataması myValue **= 2
%= Kalan atama myValue %= 2

Sembolik değerler

Temel sayı, birkaç özel durum için de geçerlidir: "sayı değil" değeri (NaN) ve pozitif (Infinity) veya negatif (-Infinity) olabilen sonsuzluğu temsil eden bir değer.

Çoğu programlama dilinin bunun yerine hata verdiği durumda sıfıra bölme işleminin sonucu olarak Infinity ile nadiren karşılaşabilirsiniz:

10 / 0
> Infinity

JavaScript'in büyük/küçük harfe duyarlı olduğunu unutmayın. Infinity, sonsuzluk kavramını temsil eden bir sayı veri türüdür ancak infinity ürününün özel bir anlamı yoktur:

Infinity
> Infinity

infinity
> Uncaught ReferenceError: infinity is not defined

NaN ("Sayı Değil"), bir aritmetik işlemin sonucunun sayı olarak ifade edilemediği durumlarda daha sık gösterilir. Örneğin, JavaScript, değer ve bağlamdan veri türünü tahmin etmeye çalıştığı için, yalnızca bir sayı içeren sabit bir dize değeri, matematiksel bir işlemde kullanılabilir:

"2" * 2;
> 4

Ancak bu dize sayı değeri olarak ayrıştırılamazsa matematiksel işlem sayı dışında bir sonuç verir:

"two" * 2;
> NaN

Geçersiz değerin matematiksel bir işlemde sayı olarak temsil edildiği her durumda NaN döndürülür. Örnekler şunları içerir:

  • Başarısız dönüşüm sayısı (örneğin, parseInt( undefined ) )
  • Sonucun reel sayı olmadığı aritmetik işlemler (örneğin, 0 / 0, Math.sqrt( -10 ))
  • Sonucu belirsiz bir aritmetik işlem (0 * Infinity)
  • Açık bir NaN (NaN + 2) veya NaN sonucu (2 * "string" / 2) içeren bir aritmetik işlem

Öğrendiklerinizi sınayın

false, Number() hizmetine iletildiğinde ne olur?

0
Yanlış
NaN
1

Aşağıdaki matematik işleminin sonucu nedir?

"Six" * 3

NaN
2
18
Doğru
0