true && 5 => 5
false && 5 => false
здесь вернул 5
из описания : Возвращает значение expr1, если оно может быть преобразовано в false; иначе возвращает значение expr2. Таким образом, при использовании с величинами типа Boolean оператор && вернет true, если оба операнда могут быть преобразованы в true; иначе оператор && вернет false.
он смотрите может ли первое выражение в false преоброзовать , не может поэтому и возвращает 2ое выражение тоесть 5 ?