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.
