Çok sayıda koşulu kontrol etmek zorunda kaldığınız durumlarda, varsayılan yöntem yerine farklı bir bakış açısı denemek isterseniz, alternatiflere bir gözatalım 🙂
Normalde status değişkenini kontrol ettiğimizi varsayalım. Örneğin;
let status = 'online';
if (status === 'online' || status === 'busy' || status === 'away'){
// işlemler
}
Bunu daha iyi bir yaklaşım ile şöyle yazabiliriz;
if (['online', 'busy', 'away'].indexOf(status) !== -1){
// işlemler
}
indexOf’ı sıklıkla bitwise not operatörü (~) ile birlikte görebilirsiniz. Oda şöyledir;
if (~['online', 'busy', 'away'].indexOf(status)){
// işlemler
}
Eğer console’a ~-1 diye çalıştırırsanız 0 yani false değeri döndüğünü görürsünüz. indexOf ile kontrol ettiğimizde eğer içinde bulunmuyorsa aradığımız değer garip bir şekilde -1 döndürüyordu. Buda teknik olarak bu operatör ile true-false’a göre kontrol etmemizi sağlıyor 🙂
Güzel haber şu ki artık buna da gerek yok. Çünkü 2016’da ES7 piyasaya sürüldü ve includes ile tanıştık. Artık şu şekilde kolayca mantıksal kontrol yapabiliyoruz.
if (['online', 'busy', 'away'].includes(status)){
// işlemler
}