Мой вопрос: как вы обрабатываете логические значения при использовании || оператор?
Мой не исчерпывающий ответ. Решение @ bkail должно сработать. Однако я хотел бы отметить следующее:
Оператор ||
создает значение своего первого операнда, если первый операнд верен. В противном случае он выдает значение второго операнда 1 .
var preload; // undefined is falsy
preload = preload || true;
console.log(preload); // true
var preload = false; // false is obviously falsy
preload = preload || true;
console.log(preload); // true
var preload = ""; // empty string is falsy
preload = preload || true;
console.log(preload); // true
var preload = null; // null is falsy
preload = preload || true;
console.log(preload); // true
var preload = "something else"; // a non-empty string is truthy
preload = preload || true;
console.log(preload); // returns "something else", the first operand
var preload = {}; // even an empty object is truthy
preload = preload || true;
console.log(preload); // returns "Object {}"
1 Источник: JavaScript: Хорошие части Дуглас Крокфорд - Страница 17