оператор || идет по порядку слева направо и смотрит на каждый операнд, если он приводится к тру, то он останавливается и возвращает значение, которое смогло привестись к тру, если дошли до конца и ничего не было тру, он вернет значение последнего, а && идет по каждому, и если вдруг встретил то, что приводится к фолс, то он его возвращает, если дошли до конца и все оказалось истинным, возращается последний