--- id: 599a789b454f2bbd91a3ff4d title: Practice comparing different values challengeType: 1 videoUrl: https://scrimba.com/c/cm8PqCa forumTopicId: 301174 localeTitle: Практика сравнения разных значений --- ## Description
В двух последних проблемах мы узнали об операторе равенства ( == ) и строгого оператора равенства ( === ). Давайте сделаем быстрый обзор и практикуем использование этих операторов еще немного. Если сравниваемые значения не относятся к одному типу, оператор равенства выполняет преобразование типа, а затем оценивает значения. Тем не менее, строгий оператор равенства будет сравнивать как тип данных, так и значение as-is, без преобразования одного типа в другой. Примеры
3 == '3' // возвращает true, потому что JavaScript выполняет преобразование типов из строки в число
3 === '3' // возвращает false, потому что типы разные, и преобразование типов не выполняется
Заметка
В JavaScript вы можете определить тип переменной или значение с помощью оператора typeof следующим образом:
typeof 3 // возвращает 'number'
typeof '3' // возвращает 'string'
## Instructions
Функция compareEquality в редакторе сравнивает два значения с помощью equality operator . Измените функцию так, чтобы она возвращала «Равно» только тогда, когда значения строго равны.
## Tests
```yml tests: - text: compareEquality(10, "10") should return "Not Equal" testString: assert(compareEquality(10, "10") === "Not Equal"); - text: compareEquality("20", 20) should return "Not Equal" testString: assert(compareEquality("20", 20) === "Not Equal"); - text: You should use the === operator testString: assert(code.match(/===/g)); ```
## Challenge Seed
```js // Setup function compareEquality(a, b) { if (a == b) { // Change this line return "Equal"; } return "Not Equal"; } // Change this value to test compareEquality(10, "10"); ```
## Solution
```js function compareEquality(a,b) { if (a === b) { return "Equal"; } return "Not Equal"; } ```