Karşılaştırma Operatörleri

Karşılaştırma operatörlerinden büyüktür, küçüktür vb. matematiksel olanları zaten biliyorsunuzdur. Programlama dillerindeki karşılaştırma işlemlerinin hepsinin sonucu true veya false olarak döner. Yani Boolean tipindedir. Şimdi karşılaştırmaları ele alalım.

İlişkisel Karşılaştırmalar ( <, >, =, ! )

Bu karşılaştırmalarda <, >, =, ! sembolleri kullanılır. Büyüktür, küçüktür, eşittir gibi karşılaştırmalardır. Örnek.

let sayi1 = 12;
let sayi2 = -12;

alert(sayi1 > sayi2); // true
alert(sayi1 < sayi2); //false
alert(sayi1 > sayi1); //false
alert(sayi1 < sayi1); //false
alert(sayi1 >= sayi1); //true
alert(sayi1 <= sayi1); //true

Değerlerin sayı tipinde olmasına gerek yoktur. Sayısal değerler farklı tipte olsalar da değerleri üzerinden karşılaştırılırlar.

alert('15' > '25'); // false
alert(25 > '15'); // true
alert('15' > '25'); // false
alert(true > false); //true (Boolean true=1 false=0)
alert(false > true); //false (Boolean true=1 false=0)

Javascript'te karakterler Unicode Karakter Kodlaması'na göre bit değerleri üzerinden karşılaştırılır. Örneğin:

Harf
Unicode
UTF-16

a

U+0061

0x0061

A

U+0041

0x0041

Karakter dizisi sırayla ilk karakterden başlanarak karşılaştırılır. Bu tabloya göre karşılaştırmalar yapalım.

Aynı sonuç çünkü 'TR' karakterleri ikisinde de aynı olduğu için sonuç çıkana kadar karakterleri kontrol etmeye devam eder. Sayısal olmayan değerler ile sayısal olanları karşılaştırıldığında sayısal olmayanlar NaN değerine çevrildiği için tüm karşılaştırmalar false olarak çıkar.

Eşitlik karşılaştırmaları iki veya üç = sembolü ile yapılır. == sembolü ile sadece değer, === sembolü ile hem tip hem de değer karşılaştırması yapılır. Üç = sembolü ile yapılan karşılaştırmalar sıkı karşılaştırmalardır. Tek = sembolü atama operatörüdür karşılaştırma yapmaz. Örnek.

== Değerler Eşit mi? | === Tipler ve Değerler Eşit mi?

Eşitsizlik (Eşit Değil mi?) karşılaştırmaları da iki şekilde yapılır. != sembolü ile sadece değer !== sembolü ile hem tip hem de değer karşılaştırması yapılır. Örnek.

Undefined, Null ve NaN değerlerinin karşılaştırmaları beklenmeyen sonuçlar verebilir. Undefined değeri karşılaştırmalarda NaN değerine döner, Null değeri ise 0 değerine döner. NaN ile yapılan bütün karşılaştırmaların false sonucunu vereceğini unutmayınız.

Bu sebeple sıkı karşılaştırma olan === operatörünü kullanmanız önerilir.

Dahili Karşılaştırmalar

Dahili karşılaştırmalar dilde fonksiyon veya metotlarla yaptığımız karşılaştırmadır. Örneğin NaN, Infinity, Integer vb. değerlerini kontrol etmemizi sağlayan metot veya fonksiyonlar vardır. Örnek.

.includes() | .endsWith() | .startsWith()

Bu karşılaştırmalar daha önce string konusunda işlenmiştir. Karşılaştırma sonucu olarak true false vermektedir.

Array.isArray() | instanceof

Bu karşılaştırmalar yine true false sonuç veren dahili karşılaştırmalardır. Referans Veri Tipleri konusu ile işlenecektir.

Last updated