Я читал ответ на этот question (о видео "wat" ), и он сказал:
-
{}+[]
Это интерпретируется как пустой блок кода, унарный плюс и пустой массив. Первая часть ничего не делает, массив преобразуется в разделенную запятыми строку его элементов (пустая строка для пустого массива), затем к числу (пустая строка преобразуется в 0), поэтому 0.
В настоящее время я изучаю JS из "Окончательного руководства", поэтому я стараюсь действительно понимать такие вещи.
Мой вопрос в том, когда JS решит интерпретировать {} как пустой блок кода вместо пустого объекта?
Кроме того, есть некоторые несоответствия между Node.js и Firebug, которые я хотел бы понять.
Firebug:
![Firebug console output for <code>{}[]</code> and <code>({}[])</code>](/img/dcb05dd586dfce119a2ad19bdcbdeeb5.png)
Node.js
![Node.js output for <code>{}[]</code> and <code>({}[])</code>](/img/00634bcff06e0816f69f88b820a0f851.png)