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()
и тут уж слава яйцам, получается примитив 👍