В JavaScript числовые, строковые и логические значения сравниваются по значению. Делается это с помощью операторов равенства или идентичности. И если при сравнении двух таких переменных их значения равны или идентичны, то выражение, сравнивающее их, вернёт true. Например, две строки равны, если они содержат совершенно одинаковые символы, и не равны, если это не так: Hello = "Привет"; HELLO = "ПРИВЕТ"; res = Hello == HELLO; Здесь в переменной res будет false, потому что строки равны по смыслу, но не по значению (разный регистр символов). С простыми типами данных всё понятно. Так выполняется сравнение и в большинстве других языков. А вот массивы, объекты и функции в JavaScript сравниваются не по значению, а по ссылке. Это значит, что две переменные считаются равными, только если они ссылаются на один и тот же объект. То есть два разных массива никогда не будут равными, даже если они содержат одинаковые элементы. Однако разные переменные могут быть связаны с одним и тем же массивом (ссыла