ECMAScript Boolean işlevleri
- Önceki sayfa Bit işlevsel işaretçileri
- Sonraki sayfa Çarpma işlevsel işaretçileri
Boolean işlevleri çok önemlidir, bu da program dilinin düzgün çalışmasını sağlar.
Boolean işlevleri üç türdür: NOT, AND ve OR.
ToBoolean işlemi
Farklı mantıksal işlevler hakkında öğrenmeden önce, bizi ECMAScript-262 v5 normunda tanımlanan ToBoolean işlemi hakkında bilgi verin.
Abstrakt işlem ToBoolean, parametresini aşağıdaki kurallara göre mantıksal değere dönüştürür:
Parametre türü | Sonuç |
---|---|
Undefined | false |
Null | false |
Boolean | Sonuç girdi parametresine eşittir (değiştirilmez) |
Number | Eğer parametre +0, -0 veya NaN ise sonuç false'dur; aksi takdirde true'dur. |
String | Eğer parametre boş bir dize ise sonuç false'dur; aksi takdirde true'dur. |
Object | true |
Lojik NOT işlevi
ECMAScript'te, mantıksal NOT işlevi, C ve Java'daki mantıksal NOT işlevi ile aynıdır ve hepsi, hayır işareti (!) ile temsil edilir.
Mantıksal OR ve mantıksal AND işlevleri ile farklı olarak,Mantıksal NOT işlevi, her zaman Boolean değer döndürür.
Mantıksal NOT işlevinin davranışı şu şekildedir:
- Eğer işlemci nesne ise, false döndürür
- Eğer işlemci sayı 0 ise, true döndürür
- Eğer işlemci 0 dışındaki herhangi bir sayı ise, false döndürür
- Eğer işlemci null ise, true döndürür
- Eğer işlemci NaN ise, true döndürür
- Eğer işlemci undefined ise, hata meydana gelir
Genellikle bu işlev, döngüleri kontrol etmek için kullanılır:
var bFound = false; var i = 0; while (!bFound) { if (aValue[i] == vSearchValues) { bFound = true; } else { i++; } }
Bu örnekte, Boolean değişkeni (bFound) bulma işlemi başarılı olup olmadığını kaydetmek için kullanılır. Veri öğesi bulunduğunda, bFound true olarak ayarlanır, !bFound false olur, bu da döngüden çıkmanın anlamına gelir.
ECMAScript değişkenlerinin Boolean değerlerini değerlendirmek için, mantıksal NOT işlevi de kullanılabilir. Bunu yapmak için bir satırda iki NOT işlevi kullanmanız gerekir. Herhangi bir işlemci türü ne olursa olsun, ilk NOT işlevi Boolean değeri döndürür. İkinci NOT, bu Boolean değeri negatif sonuçlandırarak, değişkenin gerçek Boolean değerini verir.
var bFalse = false; var sRed = "red"; var iZero = 0; var iThreeFourFive = 345; var oObject = new Object; document.write("bFalse'in mantıksal değeri " + (!!bFalse)); document.write("sRed'in mantıksal değeri " + (!!sRed)); document.write("iZero'in mantıksal değeri " + (!!iZero)); document.write("iThreeFourFive'in mantıksal değeri " + (!!iThreeFourFive)); document.write("oObject'un mantıksal değeri " + (!!oObject));
Sonuç:
bFalse'in logic değeri false'dur sRed'in logic değeri true'dur iZero'in logic değeri false'dur iThreeFourFive'in logic değeri true'dur oObject'in logic değeri true'dur
Logic AND işleçisi
ECMAScript'te, logic AND işleçisi iki ve işaretiyle (&&) temsil edilir:
Örnek olarak:
var bTrue = true; var bFalse = false; var bResult = bTrue && bFalse;
Aşağıdaki doğru değer tablosu, logic AND işleçinin davranışını açıklamaktadır:
İşletim sayısı 1 | İşletim sayısı 2 | Sonuç |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
Logic AND hesaplamasının operasyonelleri herhangi bir tür olabilir, sadece Boolean değerler değil.
Bir operasyonel temel Boolean değeri değilse, logic AND hesaplaması belirli bir Boolean değeri döndürmeyebilir:
- Bir operasyonel nesne, diğeri Boolean değer ise, bu nesne döndürülür.
- İki operasyonel her ikisi de nesne ise, ikinci nesne döndürülür.
- Bir operasyonel null ise, null döndürür.
- Bir operasyonel NaN ise, NaN döndürür.
- Bir hesaplanan sayı tanımlanmamışsa, hata meydana gelir.
Java'daki logic AND hesaplaması gibi, ECMAScript'teki logic AND hesaplaması da basit hesaplamadır, yani ilk operasyonel sonuç belirlediğinde ikinci operasyonel hesaplanmaz. Logic AND hesaplaması için, ilk operasyonel false ise, ikinci operasyonel ne olursa olsun sonuç true olamaz.
Aşağıdaki örneği göz önünde bulundurun:
var bTrue = true; var bResult = (bTrue && bUnknown); // Hata alert(bResult); // Bu satır çalışmayacak
Bu kod, logic AND hesaplaması sırasında hata meydana getirecektir, çünkü değişken bUnknown tanımlanmamıştır. Değişken bTrue'in değeri true, çünkü logic AND hesaplaması bUnknown değişkenini hesaplamaya devam edecektir. Bu, bUnknown'in değeri undefined olduğu için hata meydana getirecektir, çünkü bu değer logic AND hesaplamasında kullanılamaz.
Bu örneği değiştirirseniz, ilk sayıyı false olarak ayarlayarak hata meydana gelmez:
var bFalse = false; var bResult = (bFalse && bUnknown); alert(bResult); // "false" çıktısı
Bu kod parçasında, betik logic AND hesaplamasının döndürdüğü değeri çıktıya verecektir, yani dize "false". Değişken bUnknown'in değeri undefined ise, ilk operasyonelin değeri false olduğu için hesaplanmayacaktır.
İpucu:}Mantıksal AND işlevsel işaretçisini kullanırken, bu basit hesaplama özelliğini unutmamak gerekir.
Mantıksal OR işlevsel işaretçisi
ECMAScript'teki mantıksal OR işlevsel işaretçisi, Java'daki ile aynı şekilde, çift dikey çizgi (||) ile temsil edilir:
var bTrue = true; var bFalse = false; var bResult = bTrue || bFalse;
Aşağıdaki doğru değer tablosu, mantıksal OR işlevsel işaretçisinin davranışını açıklamaktadır:
İşletim sayısı 1 | İşletim sayısı 2 | Sonuç |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
Mantıksal AND işlevsel işaretçileri ile benzer şekilde, bir hesaplanan sayı Boolean değeri değilse, mantıksal OR işlevsel işaretçisi belirli bir Boolean değeri döndürmez:
- Bir hesaplanan sayı nesne ise ve nesnenin solundaki hesaplanan sayılar tümü de false ise, o nesne döndürülür.
- İki hesaplanan sayı her ikisi de nesne ise, ilk nesne döndürülür.
- Son hesaplanan sayı null ise ve diğer hesaplanan sayılar false ise, null döndürülür.
- Son hesaplanan sayı NaN ise ve diğer hesaplanan sayılar false ise, NaN döndürülür.
- Bir hesaplanan sayı tanımlanmamışsa, hata meydana gelir.
Mantıksal AND işlevsel işaretçileri ile aynı şekilde, mantıksal OR işlevsel işaretçileri de basit bir hesaplama işlevlidir. Mantıksal OR işlevsel işaretçisi için, ilk hesaplanan sayı true ise, ikinci hesaplanan sayı artık hesaplanmaz.
Örnek olarak:
var bTrue = true; var bResult = (bTrue || bUnknown); alert(bResult); //"true" çıktısı alınır
Önceki örnekle aynı şekilde, değişken bUnknown tanımlanmamıştır. Ancak, değişken bTrue'nun true değeri olduğu için bUnknown hesaplanmaz, bu yüzden "true" çıkışı alınır.
bTrue'ı false olarak değiştirirseniz, hata meydana gelir:
var bFalse = false; var bResult = (bFalse || bUnknown); //Hata meydana gelir alert(bResult); //Bu satır çalışmayacak
- Önceki sayfa Bit işlevsel işaretçileri
- Sonraki sayfa Çarpma işlevsel işaretçileri