Что выведет код Junior Объекты и массивы обновлено

Set и объекты

Вопрос

Что выведет код? По строке на каждый вывод.

const s = new Set([{a:1}, {a:1}]);
console.log(s.size);
const o = {a:1};
console.log(new Set([o, o]).size);
console.log(new Set([NaN, NaN]).size);

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: 2, 1, 1. Почему так Одинаковые по содержимому объекты - разные значения.

Что выведет

2
1
1

Разбор

Почему так

Одинаковые по содержимому объекты - разные значения. NaN схлопывается, потому что SameValueZero считает NaN равным NaN (в отличие от ===).

Вывод

2
1
1

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.