¿Diferencia entre usar un operador ternario o simplemente evaluación de cortocircuito?
Recientemente me encontré con una evaluación de cortocircuito y estaba un poco confundido porque solo comencé a programar la semana pasada. Por lo que entiendo, si lo que ocurre antes del primer tubo doble es cierto, se detendrá y no evaluará lo que viene después del tubo doble. Por ejemplo:
Ejemplo 1:
var a = true;
var b = a || {};
Así que supongo que si a existe, entonces asigne a a b, de lo contrario, b es igual a un objeto. Lo que no entiendo es dónde usaré esto y cómo se diferencia de un operador ternario, ¿no es la evaluación de cortocircuito lo mismo que:
Ejemplo 2
var a = true;
var b = (a) ? a : {};
¿Por qué uno usaría el ejemplo 1 sobre el ejemplo 2, ya que no es más lento para escribir o hay un beneficio de velocidad del uso de uno sobre el otro? o es solo una pregunta tonta y tal vez me estoy perdiendo algo. Si alguien pudiera aclarar esto para mí, sería genial.