Karşılaştırma operatörleri

Karşılaştırma operatörleri, iki işlenenin değerlerini karşılaştırır ve true veya false ifadelerini kullanabilirsiniz. Aşağıdaki örnekte İki işleneni karşılaştırmak için strict equality operatörü (===): 2 + 2 ve 4 değeri. Çünkü ifadenin ve sayı 4 değeri aynıysa bu ifade true olarak değerlendirilir:

2 + 2 === 4
> true

Baskı ve eşitlik yazın

En sık kullanılan iki karşılaştırma operatörü, tam eşitlik için == şeklindedir katı bir eşitlik için ===. ==, ikisi arasında genel bir karşılaştırma yapıyor değerleri, mümkünse işlem görenleri veri türleriyle eşleşecek şekilde zorlayarak değerleri. Örneğin, örnek, karşılaştırma yapılsa bile 2 == "2", true değerini döndürür bir sayı değeri ile dize değeri arasına girin.

2 == 2
> true

2 == "2"
> true

Aynı durum != için de geçerlidir. Bu değer, true değerini yalnızca işlenenler ile kıyaslandığında genel olarak eşit değildir.

2 != 3
> true

2 != "2"
> false

=== veya !== kullanılan katı karşılaştırmalar, tür zorlaması yapmaz. Örneğin, true ile değerlendirmek için katı bir karşılaştırma kullanıyorsanız karşılaştırılan değerler aynı veri türünde olmalıdır. Bu nedenle 2 == "2", true değerini döndürür ancak 2 === "2" değerini döndürür. false değerini döndürür:

2 === 3
> false

2 === "2"
> false

Otomatik baskıdan kaynaklanabilecek belirsizliği kaldırmak için her zaman === kullanın yapmasını sağlar.

Operatör Açıklama Kullanım Sonuç
=== Tamamen eşit 2 === 2 true
!== Tam olarak eşit değil 2 !== "2" true
== Eşit (veya "genelde eşit") 2 == "2" true
!= Eşit değil 2 != "3" true
> Şundan büyük: 3 > 2. true
>= Büyüktür veya eşittir 2>= 2 true
< Küçüktür 2 < 3 true
<= Küçüktür veya eşittir 2 <= 3 true

Doğru ve yanlış

JavaScript'teki tüm değerler örtülü true veya false değerleridir ve karşılık gelen boole değerini kullanabilirsiniz. Örneğin, karşılaştırıcıdır. Sınırlı bir değer grubu false değerine zorlanır:

  • 0
  • null
  • undefined
  • NaN
  • Boş dize ("")

Bir veya daha fazla değer içeren dizeler dahil olmak üzere diğer tüm değerler, true değerini zorlar. karakterler ve sıfır olmayan tüm sayılar. Bunlar genellikle "truthy" (doğruluk) olarak adlandırılır. ve "sahte" değerler.

"My string" == true
> true

100 == true
> true

0 == true
> false

Mantıksal operatörler

Bir komut dosyasının akışını, iki veya daha fazla koşullu ifadenin değerlendirmesine dayanarak kontrol etmek için mantıksal AND (&&), OR (||) ve NOT (!) operatörlerini kullanın:


2 === 3 || 5 === 5;
> true

2 === 2 && 2 === "2"
> false

2 === 2 && !"My string."
> false

Mantıksal DEĞİL (!) ifadesi, işlenenin doğru veya yanlış değerini yok eder. İşlenenin false olarak değerlendirilmesi halinde true, işlenenin true olarak değerlendirilmesi durumunda false olarak değerlendirilir:


true
> true

!true
> false

!false
> true

Mantıksal NOT operatörünü (!) başka bir veri türünün önüne ekleyin: bir dizeyi ifade ederse bu değeri bir boole'ye zorlar ve doğruyu veya dizeyi Hatalı değer.

"string"
> "string"

!"string"
> false

0
> 0

!0
> true

Verileri belirli bir değişkene hızlı bir şekilde zorlamak için iki NOT operatörü kullanmak, eşleşen Boole değeri:

!!"string"
> true

!!0
> false

Mantıksal AND ve OR operatörleri tek başlarına baskı yapmaz. Onlar değerlendirilen iki işlemden birinin değerini döndürür, seçilen değer, belirli bir işlem gücüne sahiptir.

Mantıksal VE (&&), iki işlem görenin ilkini yalnızca söz konusu işlem görense döndürür false olarak değerlendirilir, aksi halde ikinci işlenen. Karşılaştırmalara göre boole değerlerine göre değerlendirildiğinde, yalnızca her iki taraftaki işlem görenlerse true değerini döndürür. mantıksal VE mantığını kullanarak true olarak değerlendirin. İki tarafın da sonucu false ise false değerini döndürür.

true && false
> false

false && true
> false

false && false
> false

true && true
> true

&&, boole olmayan iki işlenenle kullanıldığında, ilk işlenen döndürülür false değerine zorlanabilirse değişmez. İlk işlenen zorlanabilirse true değerine ayarlanırsa ikinci işlenen değiştirilmeden döndürülür:

false && "My string"
> false

null && "My string"
> null

"My string" && false
> false

"My string" && "My second string"
> "My second string"

2 === 2 && "My string"
> "My string"

Mantıksal VEYA (||), iki işlenenden ilkini yalnızca söz konusu işlem görense döndürür true olarak değerlendirilir, aksi halde ikinci işlenen. Karşılaştırmalara göre boole değerlerine göre değerlendirildiğinde, işlenen ifadelerden biri varsa true değerini döndürür true olarak değerlendirilir ve iki taraf da true sonucunu vermezse şunu döndürür: false:

true || false
> true

false || true
> true

true || true
> true

false || false
> false

||, boole olmayan iki işlenenle kullanıldığında ilk işleneni döndürür true değerine zorlanabilecek olsa bile değişmeyecektir. İlk işlenen zorlanabilirse false değerine ayarlanırsa ikinci işlenen değiştirilmeden döndürülür:

false || "My string"
> "My string"

null || "My string"
> "My string"

"My string" || false
> "My string"

"My string" || "My second string"
> "My string"

2 === 2 || "My string"
> true

Boş birleştirme operatörü

ES2020'de kullanıma sunuldu, "boş birleştirme operatörü" (??), yalnızca ilk işleneni döndürür işlenenin, null veya undefined dışında bir değeri var. Aksi takdirde işlenene göre.

null ?? "My string"
> "My string"

undefined ?? "My string"
> "My string"

true ?? "My string";
> true

??, mantıksal bir VEYA operatörüne benzer ancak ilk işlenenin yardımcı olur. ||, şunlar için ikinci işleneni döndürür: undefined ve null dahil olmak üzere false değerine zorlandı. ??, ikinci sonucu döndürür ilk işlenen, null veya undefined dışında bir şey olduğunda işlenen false olmaya zorlanabilir:

0 ?? "My string";
> 0

false ?? "My string";
> false

undefined ?? "My string";
> "My string"

Mantıksal atama operatörleri

İlk kullanıcıya ikinci bir operatörün değerini atamak için atama operatörlerini kullanın operatörümüzü kullanabilirsiniz. Bunun en yaygın örneği, tek bir eşittir işaretidir (=). bildirilen bir değişkene değer atayın.

Bir değişkene koşullu olarak değer atamak için mantıksal atama operatörlerini kullanma doğru veya yanlış değerine göre belirleyebilirsiniz.

Mantıksal VE ataması (&&=) operatörü, ikinci işleneni değerlendirir ve ilk işlenene, yalnızca ilk işlenen true - etkili bir şekilde, "ilk işlenen doğruysa bunun yerine ikinci işleneni belirtin:"

let myVariable = false;
myVariable
&&= 2 + 2;
> false

myVariable
= true;
myVariable
&&= 2 + 2;
> 4

İlk işlenenin doğruluk veya yanlış değeri, atamanın emin olun. Ancak, bir karşılaştırma kullanarak ilk işleneni değerlendirmeye çalışılıyor. operatörün atanamayan true veya false boole değeri değer:

let myVariable = 5;
myVariable
> 2 &&= "My string"
> SyntaxError: Invalid left-hand side in assignment

Mantıksal VEYA ataması (||=) operatörü, ikinci işleneni değerlendirir ve ilk işlenen, false olarak değerlendirilirse ilk işlenene atar - "ilk işlenen yanlışsa, ikinci işlenenin değerini atayın. işlem görenin bunun yerine:"

let myVariable = false;
myVariable
||= 2 + 2;
> 4

myVariable
= true;
myVariable
||= 2 + 2;
> true

Öğrendiklerinizi sınayın

Hangi operatör "kesinlikle eşit" ifadesini gösterir?

==
===
!=
=