'&&' и '||' против '? : '

Почему вы использовали этот синтаксис?

var myVar = myArray.length && myArray || myObject;

вместо

var myVar = myArray.length ? myArray : myObject;

Редактировать: Я просто подумал, что если в случае && || синтаксис, обе стороны || оценены как false, как и следовало ожидать, если myObject был undefined или null ], если будет возвращено false. Но это не так, возвращается значение объекта undefined или null .

true  ||  true      //true
true  ||  false     //true
false ||  true      //true
false ||  false     //false

Edit2:

!!(myArray.length ? myArray : myObject);

Однако это возвращает false, если myObject имеет значение undefined или null

5
задан Duncan Gravill 21 August 2011 в 01:02
поделиться