R
{} в начале строки - это не объект, а пустой блок кодаSize: a a a
R
{} в начале строки - это не объект, а пустой блок кодаR
+[]R
DM
DM
toPrimitive()DM
[object Object]DM
DM
DM
{}+[] тождественно +[], т.к. пустой блок выполнился и ничего не делалDM
[] привелся к примитиву ''DM
+'' = 0R
toPrimitive()DM
[]+{}[] привелся к пустой строкеDM
'' + {} = '' + [object Object]DM
[object Object]DM
DM
DM
+[], оно пробует сначала toPrimitive() которого нет 😁DM
valueOf(), который возвращает сам массив, и поэтому игнорируется 😱DM
toString() и тут уж слава яйцам, получается примитив 👍