попробую объяснить проще, чем написано выше.
Dvornik33 , оператор if работает так - с тем, что написано в скобках выполняется приведение к логическому типу boolean, то есть к True или False. Если в скобках записано выражение, оно выполняется и его результат приводится к boolean.
При этом, совсем не обязательно, чтобы выражение в скобках было с использованием == или ===, можно и так, например:
if (3 * 4) {
console.log("true");
}
А выражения с == или === это просто такой вид выражений, которые возвращают логический тип. Можно записать так:
const b = 3 === 3;
при этом в переменную b будет записано True
Логические выражения часто используются с конструкцией if потому что это удобно - логическое выражение возвращает результат логического типа, а if работает со значениями логического типа.
с == и === еще проще: когда в логическом выражении стоит ==, правая и левая часть выражения сначала приводится к числу, а затем сравнивается. Когда ===, сравнение выполняется без приведения к числу. Так как явное лучше неявного, рекомендуется использовать ===, чтобы избегать неявного приведения к числу.
о том, как различные типы приводятся к boolean или числу, надеюсь сами где-нибудь почитаете.
Эквивалентно ли if (условие) условию if (условие === true)
если у вас
<условие> это выражение, возвращающее логический тип, то да, эквивалентно.