Почему `[] + []` не даёт число
В JavaScript оператор `+` умеет не только складывать числа, но и соединять строки. Какую операцию выбрать, язык решает по типам значений — а массивы перед сложением сначала преобразует к примитивам, то есть к простым значениям вроде строк или чисел.
У массива такое преобразование обычно проходит через его строковое представление. Метод `toString()` собирает элементы через запятую; у пустого массива элементов нет, поэтому результат — пустая строка `""`. Значит, оба операнда превращаются в `""`, и `+` склеивает их как строки.
Пустая строка — это не пустой массив
Итог выражения — именно строка, а не массив и не число. Это важно, если результат затем сравнивают, выводят или используют в другом вычислении: пустая строка и пустой массив — разные значения, даже если оба визуально могут казаться «ничем».
Тот же механизм объясняет, почему массив с элементами ведёт себя иначе: например, `[1, 2]` при строковом преобразовании становится `"1,2"`. В случае двух пустых массивов склеивать нечего — поэтому выражение заканчивается пустой строкой.


![В C запись 5[a] обращается к тому же адресу, что a[5]](https://cdn.stackyfacts.com/images/8d1cb281-004c-4034-beec-f92b007ea3e7_back.jpg)



