Выбор ответа Middle Объекты и массивы обновлено
includes и indexOf с NaN
Вопрос
Что выведет код?
const values = [1, NaN];
console.log(values.includes(NaN), values.indexOf(NaN));
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: true -1. indexOf сравнивает строгим ===, а NaN === NaN ложно, поэтому -1. includes использует алгоритм SameValueZero, где NaN равен NaN, поэтому true.
Варианты ответа
false -1true 1true -1правильный ответfalse 1
Разбор
indexOf сравнивает строгим ===, а NaN === NaN ложно, поэтому -1. includes использует алгоритм SameValueZero, где NaN равен NaN, поэтому true. Разница пригодится, если в данных бывают NaN: проверяйте наличие через includes, а индекс через findIndex(Number.isNaN).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.