Когда массив неявно преобразуется в строку, он вызывает .join(,)
для массива:
15.4.4.2 Array.prototype.toString ()
- Пусть func будет результатом вызова внутреннего метода [[Get]] для массива с аргументом "join".
И метод .join
, в частности , приводит к появлению пустой и неопределенной пустой строки:
15.4.4.5 Array.prototype.join (разделитель)
- Если element0 не определен или равен нулю, пусть R будет пустой строкой; в противном случае, пусть R будет ToString (element0).
При значениях, отличных от undefined
или null
, элемент просто будет вызывать toString
.
Другими словами, null
и undefined
являются двумя специальными исключениями из обычного правила простого приведения элемента в строку.