42 / 51
Как работает toString и valueOf при приведении типов объектов?
Когда JavaScript приводит объект к примитиву, он вызывает valueOf() или toString() в зависимости от «хинта» контекста. Для числового контекста (+obj, сравнения) сначала вызывается valueOf, для строкового (${obj}, конкатенация со строкой) — toString. Если метод не вернул примитив, движок пробует второй. Метод Symbol.toPrimitive перехватывает весь процесс и заменяет оба.