Javascript's rules for addition between differeent types are as follows:
Given the following addition.
value1 + value2
To evaluate this expression, the following steps are taken (§11.6.1):
Convert both operands to primitives (mathematical notation, not JavaScript):
prim1 := ToPrimitive(value1)
prim2 := ToPrimitive(value2)
PreferredType is omitted and thus Number for non-dates, String for dates.
If either prim1 or prim2 is a string then convert both to strings and return the concatenation of the results.
Otherwise, convert both prim1 and prim2 to numbers and return the sum of the results.
Source
In this case the array gets converted to an empty string, and then the + performs string concatenation