¿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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta