¿El ||= (o igual) de Ruby en JavaScript?
Me encanta el mecanismo ||= de Ruby. Si una variable no existe o es nil, entonces créala y asígnale algo:
amount # is nil
amount ||= 0 # is 0
amount ||= 5 # is 0
Ahora necesito hacer algo similar en JavaScript. ¿Cuál es la convención o la forma correcta de hacer esto? Sé que ||= no es una sintaxis válida. Dos formas obvias de manejarlo son:
window.myLib = window.myLib || {};
// or
if (!window.myLib)
window.myLib = {};
Respuesta #1
Ambos son absolutamente correctos, pero si estás buscando algo que funcione como ||= en Ruby. El primer método, que es variable=variable || {}, es el que estás buscando :)
Respuesta #2
Puedes usar el operador lógico OR ||, que evalúa su operando derecho si lVal es un valor falsy.
Los valores falsos incluyen, por ejemplo, null, false, 0, "", undefined, NaN
x = x || 1
Respuesta #3
El operador sobre el que preguntaste ha sido propuesto como una característica en JavaScript. Actualmente se encuentra en la Etapa 4 y se introducirá en el próximo estándar de ECMAScript, que se espera que se publique en 2021.
Puedes usarlo ahora usando el plugin de Babel plugin-proposal-logical-assignment-operators. Nunca he usado ese plugin, así que no tengo idea de qué tan bien funciona.
