{} + [] == +[]
, а +[] равно 0. Когда сначала идет массив, к пустому массиву прибавляется {}, и получается [] + {} = "" + {} = ({}).toString()
. Массив является разным объектом из-за этого:[].toString() == "";
+[] == 0;
+[x] == x;
+[x,y,z] == NaN; // Ой, это неправильно!
+[x,y,z] != +[x,y,z] // NaN != NaN
{} + []
- пустой блок кода и приведение массива к числовому значению[] + {}
- приведение массива к строковому значению и добавление строкового значения пустого объекта