Búsqueda de sitios web

javascript - Opuesto del operador de fusión nulo


El operador de fusión nula permite asignar una variable si no es null o undefined, o una expresión en caso contrario.

a = b ?? other

Es una mejora con respecto a || usado anteriormente porque || también asignará otro si b es una cadena vacía u otro valor falsy, pero no un valor nulo o indefinido.

Sin embargo, a veces, también usamos && para la asignación de valores, por ejemplo

a = b && func(b)

donde solo queremos hacer func sobre b si no es nulo o indefinido, de lo contrario asignar el b nulo o indefinido.

Por supuesto, && verifica la falsedad, no la falta de valor. ¿Existe una versión de && que verifique la falta de valor?

Respuesta #1

Hasta donde sé, no existe tal operador y tampoco hay una propuesta para añadir uno. En su lugar, puedes confiar en la forma estándar de comprobar valores nulos: b == null

a = b == null ? b : func(b)

Respuesta #2

Esto no responderá la pregunta ya que @str ya la respondió, solo estoy publicando esto aquí porque no tengo suficiente reputación para comentar en la respuesta de @Dalou y no quiero que la gente tropiece con esa respuesta.

a = (b ?? false) && other

No es lo opuesto de ??, ya que a tomará el valor de b si b es un valor falsy distinto de undefined/null, como '' o 0 por ejemplo. El opuesto de ?? debería establecer a al valor de other incluso si b es '' o 0.

Artículos relacionados