Sayı değeri, herhangi bir sayısal karakter dizisinden oluşur. Örneğin:
5
Sayı veri türü, aynı zamanda
Infinity ve NaN gibi sayısal kavramları temsil eder. Bu, bir değer anlamına gelir
"sayı değil", matematiksel işlemleri gerçekleştirmenin olası bir sonucu
hesaplamalarda bulunmanızı sağlar.
Sayı nesnesi
Number() işlevine bir değer iletildiğinde, bu değer
eşdeğerdir. Örneğin, sayısal bir dize eşdeğer bir
ilkel sayı:
Number( "10" );
> 10
Number() öğesine false veya null değeri iletildiğinde 0 değeri döndürülür ve true değeri döndürülür
1.
Number( null );
> 0
Number( false );
> 0
Number( true );
> 1`
Bir değer dönüştürülemiyorsa (undefined veya bir dizede olduğu gibi)
değer sayısal olmayan karakterler içeriyorsa Number işlevi NaN değerini döndürür:
Number( undefined );
> NaN
Number( "The number 3." );
> NaN
Prototip devralma bölümünde açıklandığı üzere,
Number nesnesini bir öğe olarak kullanmak için çok az
kurucusudur. Çünkü bu, değişmez sayı değeri yerine bir Number nesnesi oluşturur.
let numObject = new Number( 15 );
numObject;
> Number { 15 }
Bu nesne, matematiksel işlemler için atanan değer olarak davranır, ancak düz sayı değerlerine karşı katı eşitlik karşılaştırmaları başarısız olur, çünkü veri türleri eşleşmez ve gerçek değer karşısında pratik bir fayda sağlamaz.
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: 64 bit IEEE 754-1985 çift duyarlıklılık
kayan nokta sayıları
-2^1024 ve 2^1024. JavaScript'in herhangi bir sayıyı bellekte depolamadan önce,
bu sayıyı, kayan noktalı olarak da adlandırılan ikili bir kayan nokta sayısına dönüştürür.
Bu 64 bit depolama (bir pozitif veya negatif "işaret" biti, üs ve bir kesir için 52 bit), herhangi bir sayıda kesinlik hatalarına neden olabilir. izin verilen aralığa uymayan basamak sayısı. Bu sınırlama, kodunu ekleyin.
0.1 + 0.7
> 0.7999999999999999
Sayı değerleri, bunun yerine, kayan nokta sayısı olan tam sayı olarak depolanabilir.
-(2^53 − 1) ile 2^53 − 1 arasında kesirsiz. Çünkü yüzer ve
Tam sayılar aynı temel şekilde depolanır, aralarında pratik bir fark yoktur
nasıl işlediğini açıklayacağım. Ancak, her anahtar kelime için tamsayı
mümkün olan en iyi sonucu verir.
Sayı operatörleri
İlkel sayılarla standart matematiksel operatörleri kullandığınızda, matematiksel işlem sırası geçerlidir: parantez içine alınmış tüm ifadeler önce değerlendirilir ve ardından üs, çarpma, bölme, toplama ve çıkarma.
| Operatör | Ad | Açıklama | Kullanım | Sonuç |
|---|---|---|---|---|
+ |
Toplama | 2+2 |
4 |
|
- |
Çıkarma | 4-2 |
2 |
|
* |
Çarpım | 2*5 |
10 |
|
/ |
Lig | 10/5 |
2 |
|
++ |
Artış | Sayıya bir ekler | 2++ |
3 |
-- |
Azalt | Sayıdan bir çıkarır | 3-- |
2 |
** |
Üs | İlk yükseltme sonucunu döndürür işlenen, ikinci işlenenin kuvvetine eşittir. |
2**4 |
16 |
% |
Kalan | ilk işlenen, ikinci işlenene bölünür. |
12%5 |
2 |
Ayrıca, matematik problemi için matematiksel atama operatörlerini değişkenin değeri üzerinde işlem yapmak ve bunu hemen yeni hesaplanan değeri değişkene ekleyin.
| 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ğer (NaN) ve pozitif olabilen, sonsuzluğu temsil eden bir değer
(Infinity) veya negatif (-Infinity).
Sıfıra bölmenin sonucu olarak Infinity ile nadiren karşılaşabilirsiniz.
çoğu programlama dilinin hata verdiği komutlar:
10 / 0
> Infinity
JavaScript'in büyük/küçük harfe duyarlı olduğunu unutmayın. Infinity, bir sayı veri türüdür
sonsuzluk kavramını temsil eder, ancak infinity kelimesinin özel bir anlamı yoktur:
Infinity
> Infinity
infinity
> Uncaught ReferenceError: infinity is not defined
NaN ("Sayı Değil")
bir aritmetik işlem sonucunda ortaya çıkabilecek durumlarla
sayı olarak ifade edilemez. Örneğin, JavaScript tahmin yapmaya çalıştığından,
değer ve bağlamdan veri türünü seçerseniz, yalnızca sayı içeren bir dize
matematiksel işlemde kullanılır:
"2" * 2;
> 4
Ancak o dize bir sayı değeri olarak ayrıştırılamazsa, matematiksel işlem sayı olmayan bir sayıyla sonuçlanır:
"two" * 2;
> NaN
Geçersiz değerin sayı olarak gösterildiği her durumda NaN döndürülür
bir algoritma çalıştırıyor. Örnekler arasında şunlar yer alır:
- 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) veyaNaNsonucu (2 * "string" / 2)
Öğrendiklerinizi sınayın
false, Number() hizmetine iletildiğinde ne olur?
Aşağıdaki matematik işleminin sonucu nedir?
"Six" * 3