Number([]), // ⭐ 0 ("prefer-number" conversion)
// -----------------------------------------------------
[].valueOf(), // [] (1. array: an object, fall back to `toString`)
[].toString(), // '' (2. empty string, primitive accepted)
// 0 (3. '' converts to 0)
Number([8]), // ⭐ 8 ("prefer-number" conversion)
// -----------------------------------------------------
[8].valueOf(), // [8] (1. array: an object, fall back to `toString`)
[8].toString(), // '8' (2. string, primitive accepted)
// 8 (3. '8' converts to 8)
Number([1,2]), // ⭐ NaN ("prefer-number" conversion)
// -----------------------------------------------------
[1,2].valueOf(), // [1,2] (1. array: an object, fall back to `toString`)
[1,2].toString(),// '1,2' (2. string, primitive accepted)
// NaN (3. '1,2' converts to NaN)