Почему вы используете этот синтаксис?
var myVar = myArray.length && myArray || myObject;
вместо
var myVar = myArray.length ? myArray : myObject;
Редактировать: у меня просто возникла мысль, что если в случае синтаксиса && ||
обе стороны||
оценивается как ложное, как вы могли ожидать, если myObject
было undefined
или null
, если было бы возвращено ложное значение.Но это не так, возвращается значение объекта undefined
или null
.
true || true //true
true || false //true
false || true //true
false || false //false
Edit2:
!!(myArray.length ? myArray : myObject);
Однако это возвращает false, если myObject
равно undefined
или null