Как происходит сравнение в JS?
Расппишу вам подробно происходящее. В первой строке происходит создание переменной и ее инициализациия, а именно переменной a присваивается ссылка на указанный вами массив из двух элементов(5 и 7). Во второй строке вы создаете переменную b и присваиваете ей ссылку на массив который находится в переменной a. Так как вы указали, что переменная b ссылается на тот же массив, что и a, то логично, что все манимуляции которые будет происхолить с массивом будут "отображатся" в двух переменных(Например: удалите элемент, добавите элемент или отсортируете массив каким-то обрзаом). В строке a==[5,7] логично, что возвращается false,т.к для компьютера это совершенно разные элементы, хотя для нас они идентичны(Мы видим, что [5,7] должно равнятся [5,7]). Ну, а в строке a == b, как я уже описал выше они ссылаются на один и тот же массив, поэтому мы и получаем в ответ true.
https://habr.com/ru/post/218061/ а так же https://habr.com/ru/post/138272/