Коротко
===— строгое сравнение: тип и значение.==— нестрогое: сначала приводит типы (coercion), потом сравнивает.
0 == false; // true
0 === false; // false
"5" == 5; // true
"5" === 5; // false
null == undefined; // true
null === undefined; // false
Зачем спрашивают
Классика JS-собеса. Хочет увидеть, что ты не ловишь сюрпризы coercion и по умолчанию пишешь ===.
Когда == ещё встречается
Иногда x == null проверяет и null, и undefined одной проверкой. В остальном в современном коде почти всегда === / !==.
Короткий ответ
«=== без приведения типов, == с приведением. В проде почти всегда строгий оператор.»