They're not booleans in ruby, python, js; they're objects that can be null.
So the point of the comment is moot...
Python: None and None -> None
&& returns the falsy value on the left side of the expression if it evaluates to a falsy value
(undefined && true) evaluates to undefined
correspondingly || returns the truthy value (which might be an object) on the left hand side if evaluates truthy. That's useful for expressions like this:
const a = b || 'default value';
!! turns truthy/falsy values into booleans.