Выбор ответа Middle Базовые типы обновлено
Обратное отображение enum
Вопрос
Что выведет код?
enum Dir { Up, Down }
console.log(Dir[0], Dir.Down);
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Up 1. Числовой enum компилируется в объект с прямым и обратным отображением: Dir.Up === 0 и Dir[0] === 'Up'.
Варианты ответа
0 1undefined 1Up DownUp 1правильный ответ
Разбор
Числовой enum компилируется в объект с прямым и обратным отображением: Dir.Up === 0 и Dir[0] === 'Up'. Поэтому Dir[0] даёт имя 'Up', а Dir.Down даёт значение 1.
0 1 путает имя и значение, undefined получилось бы у строкового enum (у него обратного отображения нет), Up Down путает Dir.Down с Dir[1].
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.