Я знаю, что абстрактное сравнение преобразует LHS в String, а String ([null, undefined, []]) приведет к ',,'.
Но String (null) будет 'null 'и String (undefined) - undefined. Итак, как String ([null, undefined, []]) является ',,'?
Почему вы думаете, что func([x, y, z])
должно быть равно func(x) + func(y) + func(z)
?
См. эти примеры:
String([1, 2]); // "1,2"
String([null]); // ""
String([undefined]); // ""
String([[]]); // ""
String([1, null, undefined]); // "1,,"
// In same way
String([null, undefined, []]); // ",,"
Попробуйте связать эти примеры со своим вопросом.