JavaScript тройни знаци за равенство VS двойни знаци за равенство - Оператори за сравнение, обяснени с примери

Може да сте виждали двойни и тройни знаци за равенство в JavaScript. Но какво означават те?

Е накратко: по ==своята същност преобразува тип и ===не преобразува тип.

Double Equals ( ==) проверява само за равенство на стойността. По своята същност прави принуда тип. Това означава, че преди да провери стойностите, той преобразува видовете променливи, за да съвпадат помежду си.

От друга страна, Triple Equals ( ===) не изпълнява принуда тип. Той ще провери дали променливите, които се сравняват, имат еднаква стойност И един и същ тип.

Добре - така че нека ви помогнем да разберете по-добре разликата чрез няколко примера. За всеки от тях помислете какъв ще бъде резултатът от тези изявления.

Пример 1:

const foo = "test" const bar = "test" console.log(foo == bar) //true console.log(foo === bar) //true 

Стойността и видът на двете fooи barе еднакъв. Следователно резултатът е и trueза двете.

Пример 2: ‌

const number = 1234 const stringNumber = '1234' console.log(number == stringNumber) //true console.log(number === stringNumber) //false 

Стойността на numberи stringNumberизглежда подобно тук. Въпреки това, от вида на numberе Numberи вид на stringNumberIS string. Въпреки че стойностите са еднакви, типът не е същият. Следователно ==проверката се връща true, но когато е проверена за стойност и тип, стойността е false.

Пример 3:

console.log(0 == false) //true console.log(0 === false) //false 

Причина: една и съща стойност, различен тип. Тип принуда

Това е интересен случай. Стойността на 0при проверка falseе същата. Това е така, защото 0и falseимат същата стойност за JavaScript, но когато се провери за тип и стойност, стойността е невярна, тъй като 0е numberи falseе boolean.

Пример 4:

const str = "" console.log(str == false) //true console.log(str === false) //false

Стойността на празния низ и falseе същата в JavaScript. Следователно, ==връща истина. Типът обаче е различен и следователно ===връща false.

Кога трябва да използвате ==и кога трябва да използвате ===?

Когато се съмнявате, използвайте ===. Това ще ви спести от тон потенциални грешки.

Ако поддържате случай на употреба, при който можете да бъдете малко снизходителни относно типа входящи данни, тогава използвайте ==. Например, ако API приема както от клиента, така "true"и trueот него, използвайте ==. Накратко, не използвайте, ==освен ако не разполагате със силен случай за употреба.

Ето една удобна таблица на истината за JavaScript за справка и за да ви покажа колко сложно е равенството в JavaScript:

Ако харесате тази статия, не забравяйте да ме следвате в Twitter за актуализации.

В: Колко място ще бъде освободено, след като Великобритания напусне ЕС?

.

.

.

A: 1 GB # DevJoke #NotAJoke

- Shruti Kapoor (@ shrutikapoor08) 4 октомври 2019 г.