подсказки:

1. к сво-ву объекта можно обращаться через точку, а можно через []:

({name: 'Dima'}).name тоже самое что

({name: 'Dima'})['name'] и равно 'Dima'



[, 12, ] - а это массив из 3 элементов: undefined, 12, undefined

[, 12, ][1] будет равно 12

А если бы вместо 12 в массиве был другой массив? То мы могли бы поставить ещё одни квадратные скобки:

[[1]] - массив, состоящий из одного элемента - другого массива! поэтому [[1]][0] - Это внутренний массив ( то есть этот [1]), а [[1]][0][0] === 1

Если к числу прибавить null, то получится тоже самое число!



2. массив + false - нельзя суммировать нессуммируемые вещи, поэтому эти вещи превращаются в строки (пустой массив - в пустую строку, а false в 'false')

если проводить операцию "-" не над числовыми операндами - будет NaN, мол, математические операции можно мутить только над числами (только операцию + можно проводить не только над числами, но ещё и над строками)

Поэтому 'X' - null = NaN



А к NaN если прибавить что угодно, то тут уже ничего хорошего не получить. Хотя если прибавлять строку, то будет преобразование в строку))



Запускайте консоль, играйтесь, это ЖУТЬ как интересно! Доброй ночи!🙏