JavaScript потрійний знак рівності проти подвійного знака рівності - оператори порівняння, пояснені на прикладах

Можливо, ви бачили подвійні та потрійні знаки рівності в 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і тип stringNumberє 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 ГБ # DevJoke #NotAJoke

- Шруті Капур (@ shrutikapoor08) 4 жовтня 2019 р