Javascript Number
Javascript 'de bir sayı veri türü vardır. Tanımladığımız her javascript number tam sayı ya da ondalıklı sayı olabilir.
Örnek
var x = 10; // Ondalıklı sayı var y = 10.5; // Tam sayı
Javascript Toplama
Javascript number türündeki değerleri + operatörü ile toplayabiliriz.
Örnek
var x = 10; var y = 20; var z = x + y; // 30
Peki Javascript string türündeki verileri + operatörü ile toplamak istersek?
Örnek
var x = "10"; var y = 20; var z = x + y; // 1020
x değişkeni, javascript number veri türünde olmadığından dolayı string toplama işlemi ile ve z değişkeni string veri türünde 1020 sonucunu verir.
** Aynı şekilde x gibi y değişkeni de tırnaklar içinde tanımlanmış olsaydı sonuç gene aynı olurdu.
Peki toplama işlemine bir değişken daha eklersek?
Örnek
var x = 10; var y = 20; var z = "30"; var result = x + y + z; // 3030
x ve y değişkeni javascript number veri türünde olduğundan dolayı x+y sonucu 30 değerini verir. 30+z işlemi ise z değişkeninin string veri türünde olmasından dolayı string birleştirme işlemi ile işlem 3030 olarak sonuçlanır.
** Önemli olan + operatörünün sağ ve solundaki değişkenin javascript number veri türünde olup olmamasıdır. Bir değişken string ise string toplama işlemi yapılır.
Javascript Matematiksel İşlemler
+ operatörünün dışında diğer matematiksel operatörlere gelen string veri türleri javascript number türüne çevrilmeye çalışılırlar.
Örnek
var x = "10"; var y = "2"; var z = x / y; // 5
x ve y değişkeni string olmasına rağmen bölme işleminde string veri türleri javascript number veri türüne çevrilir.
** Aynı işlemi bölme yerine çarpma ve çıkarma işleminde de test edebilirsiniz.
Javascript NaN (Not a Number)
Javascript NaN, bir değerin sayı olmadığı anlamını taşır.
Örnek
var x = 10 / "2a"; // NaN
Normalde bölme işlemine giren string bir değer javascript number türüne çevrilmek istenir ancak 2a değeri javascript number türüne çevrilemediğinden dolayı sayısal bir sonuç vermesi gereken bölme işlemi NaN sonucunu verir. Eğer ki 2a yerine string "2" değeri gelseydi bölme işlemi yapılabilirdi.
Peki bölme işlemine girmeden önce gelen javascript input value değerinin javascript number türüne çevirilip çevrilmeyeceğini önceden öğrenemez miyiz ? Tabi ki öğrenebiliriz.
Javascript isNan() Metodu
isNan() metoduna parametre olarak gönderdiğimiz değer eğer NaN yani sayısal olmayan bir değer ise bu durumda true sonucunu gönderir.
Örnek
isNaN("2a") // true isNaN("2") // false
Dolayısıyla kullanıcıdan aldığınız javascript input value değerinin gerçekten sayı olup olmadığını kontrol edebilirsiniz.
var sayi = input('sayı: '); if (isNaN(sayi)){ console.log('girilen değer sayı değil'); }