Búsqueda de sitios web

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

Artículos relacionados