Ç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 }