Answer
JavaScript testКод выведет:
true true
Объяснение:
В первом выражении все понятно, идет сравнение ссылки с самой собой. А во втором операнд "!a" преобразовывается к boolean и соответственно порождает преобразование к boolean операнда "a". []==false (пустой массив => false), ![]==false (ссылка на объект (в данном случае на массив) с оператором ! => false) т.е. [] == ![]
Код для проверки:
var a = []; console.log((a == a) + ' ' + (a == !a));