1339

Sıfırdan İleri Seviye Modern Javascript Dersleri ES7+

Js Sayılar

Javascript dersleri serimizin bu bölümünde Javascript' de sayısal verilerle nasıl çalışırız, öğrenelim.



Javascript Sayılar

Javascript 'de bir sayı veri türü vardır. Tanımladığımız her sayısal veri tam sayı ya da ondalıklı sayı olabilir. 

Sayısal bir veri tanımlarken tırnak kullanmamalıyız.

var x = 10;    // Ondalıklı sayı 
var y = 10.5;  // Tam sayı

Javascript Toplama

Javascript' de sayısal verileri + operatörü ile toplayabiliriz.

var x = 10;
var y = 20;
var z = x + y;   // 30

Peki Javascript string türündeki verileri + operatörü ile toplamak istersek?

var x = "10";
var y = 20;
var z = x + y;   // 1020

x değişkenine atanan veri tırnak ile tanımlandığından dolayı string olarak kabul edilir ve sayı veri türünde olmaz dolayısıyla string toplama işlemi yapılır ve z değişkeni 1020 değerine eşitlenir.

** 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?

var x = 10;
var y = 20;
var z = "30";
var result = x + y + z;  // 3030

x ve y değişkeni javascript sayı 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 sayı 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.

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 sayı 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. 

var x = 10 / "2a";  // NaN

Normalde bölme işlemine giren string bir değer javascript sayı türüne çevrilmek istenir ancak 2a değeri javascript sayı 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.

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');
}