Hint
For arithmetic +: valueOf is preferred. For template literals and String(): toString is preferred.
const obj = {
valueOf() { return 42; },
toString() { return 'obj'; },
};
console.log(obj + 1);
console.log(`${obj}`);
console.log(String(obj));43 obj obj
Explanation: obj+1: + with number prefers valueOf (42+1=43). Template literal prefers toString ("obj"). String() calls toString ("obj").
Key Insight: For arithmetic +: valueOf is preferred. For template literals and String(): toString is preferred.