I wanted further clarification on something.
Consider this:
var a = 42;
var b = \"abc\";
var c = null;
a || b; // 42
a && b; // \
What exactly is taking place when you chain the values?
In the first expression (&&) all the values must be truthy in order for the conditional test to pass. Assuming all values to be truthy the interpreter would evaluate all the values and the conditional test would pass. Otherwise it would evaluate up to the first falsey value and the conditional test would fail.
In the second expression (||) only one value must be truthy in order for the conditional test to pass. Assuming at least one value to be truthy the interpreter would evaluate up to the first truthy value and the conditional test would pass. Otherwise it would evaluate all the values and the conditional test would fail.