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
) veyaNaN
sonucu (2 * "string" / 2
)
Öğrendiklerinizi sınayın
false
, Number()
hizmetine iletildiğinde ne olur?
Aşağıdaki matematik işleminin sonucu nedir?
"Six" * 3