0

Добрый вечер.Начал изучать js.Чем отличается 5 == 5 от 5 === 5 ?Они оба возвращают true . Или 5!= 4 и 5!== 4 тоже true.Какой где правильнеее использовать?

elik
  • 5,658
  • === более строгое сравнение, оно так же учитывает типы данных. Оно предпочтительно в большинстве случаев. – Vein Oct 17 '17 at 18:08
  • 2
    js язык с динамическим приведением типов. == сравнивает приведенные значения, === сравнивает с учетом типа. Т.е. true==1 вернет true, а true===1 вернет false – rjhdby Oct 17 '17 at 18:09
  • ааа поняяятно. тогда лучше про == в js забыть) – elik Oct 17 '17 at 18:11
  • оформи как ответ – elik Oct 17 '17 at 18:11
  • @Sultanov Shamil с тем что оно предпочтительно в большинстве случаев радикально не согласен. Как раз наоборот - гораздо чаще используется == – Гончаров Александр Oct 17 '17 at 19:24
  • 1
    @elik ааа поняяятно. тогда лучше про == в js забыть) не вздумайте если хотите понятного кода, и меньше багов. – Гончаров Александр Oct 17 '17 at 19:25

1 Answers1

2

== при сравнении выполняет приведение типов

=== при сравнении только сравнивает не преобразуя значение одного типа к другому

Примеры:

console.log(true == 1);
console.log(true === 1);

результатом первого выражения будет true, потому что перед сравнением производится преобразование true -> 1, а затем сравниваются 1 и 1 соовтетственно результатом будет true

результатом второго выражения будет false, потому что перед сравнением НЕ производится преобразование true -> 1, а сравниваются true и 1, соовтетственно результатом будет false, т.к. число не равно логическому значению.

tilin
  • 2,840
  • 2
    производится преобразование 1 -> true, а затем сравниваются true и true - не угадал. Сравниваются в итоге 1 и 1 – Grundy Oct 17 '17 at 18:22
  • опечатка: результатом >первого< выражения будет true и результатом >первого< выражения будет false – Tomas Oct 17 '17 at 18:25
  • @Grundy крепко ты меня поправил, спасибо – tilin Oct 17 '17 at 18:32