Explicaré con el ejemplo:
Operador de Elvis (?:)
El "operador de Elvis" es una abreviatura del operador ternario de Java. Una instancia de donde esto es útil es para devolver un valor 'sensible por defecto' si una expresión se resuelve como falsa o nula. Un ejemplo simple podría verse así:
def gender = user.male ? "male" : "female" //traditional ternary operator usage
def displayName = user.name ?: "Anonymous" //more compact Elvis operator
Operador de navegación segura (?.)
El operador de navegación segura se utiliza para evitar una excepción NullPointerException. Normalmente, cuando tiene una referencia a un objeto, es posible que deba verificar que no sea nulo antes de acceder a los métodos o propiedades del objeto. Para evitar esto, el operador de navegación segura simplemente devolverá nulo en lugar de lanzar una excepción, de esta manera:
def user = User.find( "admin" ) //this might be null if 'admin' does not exist
def streetName = user?.address?.street //streetName will be null if user or user.address is null - no NPE thrown
??
) en javascript? Todo lo que he encontrado hasta ahora sugiere que JS solo tiene una fusión (uso ||
) "falsey" .