Операторы сравнения сравнивают два значения и возвращает логическое значение. Операторы равенства также являются оператором сравнения, которые проверяют равенство значений и возвращает логию.
В JavaScript (ES6) есть четыре (4), которые перечислены ниже.
- Используя оператор ‘==’
- Используя оператор ‘===’
- Samevaluezero: используется в основном в наборах, картах и массивах.
- Samevalue: используется в другом месте
Какую работу вы выбираете, зависят от типа сравнения, который вы хотите выполнить.
- Double равняется (==) будет выполнять преобразование типа при сравнении двух вещей и будет обрабатывать NAN, -0 и +0 специально для соответствия IEEE 754 (так NAN и -0 == +0);
- Triple равняется (===) будет делать то же сравнение, что и двойные равные (включая специальную обработку для NAN, -0 и +0), но без преобразования типа; Если типы отличаются, false возвращается.
- Object.is не имеет преобразования типа и никакой специальной обработки для NAN, -0 и +0 (придавая ему то же поведение, что и на этих специальных числовых значениях).
Строгое равенство с использованием (‘===’)
- Строгое равенство сравнивает два значения для равенства.
- Ни одно значения не имеют неявно преобразованы в какое-либо другое значение, прежде чем сравнивать.
- Если значения имеют разные типы, значения считаются неравномерно Отказ Если значение имеет тот же тип, не являются номерами и имеют одинаковое значение, они ошеломляются равными.
- Если оба значения являются числами, они считаются равными, если они оба не нан, и являются одинаковым значением, либо, если он составляет +0 и один –0.
- Значения равны только для всех ценностей, кроме количества.
- Для чисел это +0 === – 0. правда
- Единственный случай, в котором) верно, когда X является NAN.
Свободное равенство с использованием («==»)
- равенство LOOS сравнивает два значения для равенства после преобразования оба значения общему типу (одна или обе стороны могут проходить преобразование).
- После преобразования окончательное сравнение равенства выполняется точно так, как он.
- A == B всегда имеет идентичную семантику для) для любых значений A и B.
- undefined и Nurll безумно равны; то есть (undefined) верно. а также
- (null) также правда. пример ниже
Однозначное равенство
- Он проверяет погоду, два значения функционально идентичны во всех контекстах.
- Один экземпляр возникает, когда производится попытка мутировать недвижимое свойство Impretable объекта.
- Это равенство снабжено (Object.DefineProperty ()) и (Object.is ()) методами.
Оригинал: “https://dev.to/checoslbches/javascript-equality-comparison-operator-or–dfm”