Spiegherò con l'esempio:
Elvis Operator (?:)
L '"operatore Elvis" è un accorciamento dell'operatore ternario di Java. Un'istanza in cui ciò è utile è per restituire un valore "ragionevole sensato" se un'espressione si risolve in falso o nullo. Un semplice esempio potrebbe apparire così:
def gender = user.male ? "male" : "female" //traditional ternary operator usage
def displayName = user.name ?: "Anonymous" //more compact Elvis operator
Operatore di navigazione sicura (?.)
L'operatore Navigazione sicura viene utilizzato per evitare una NullPointerException. In genere, quando si ha un riferimento a un oggetto, potrebbe essere necessario verificare che non sia nullo prima di accedere ai metodi o alle proprietà dell'oggetto. Per evitare ciò, l'operatore di navigazione sicura restituirà semplicemente null invece di generare un'eccezione, in questo modo:
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
??
) in javascript? Tutto ciò che sto trovando finora suggerisce che JS abbia solo una "falsa" coalescenza (usando ||
).