Как метод `Symbol.toPrimitive` позволяет реализовать пользовательское преобразование объектов в примитивные значения в JavaScript, и какую роль играет параметр hint в определении типа преобразования? — ДейлиПреп