Я поясню на прикладі:
Оператор Елвіса (?:)
"Оператор Елвіса" - це скорочення потрійного оператора Java. Один екземпляр, де це зручно, - це повернення значення "розумного за замовчуванням", якщо вираз вирішує значення false або null. Простий приклад може виглядати так:
def gender = user.male ? "male" : "female" //traditional ternary operator usage
def displayName = user.name ?: "Anonymous" //more compact Elvis operator
Оператор безпечної навігації (?.)
Оператор безпечної навігації використовується для уникнення NullPointerException. Зазвичай, коли у вас є посилання на об'єкт, вам, можливо, доведеться переконатися, що він не є нульовим, перш ніж отримати доступ до методів або властивостей об'єкта. Щоб уникнути цього, оператор безпечної навігації просто поверне null, а не викидає виняток, як-от так:
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
??
) у javascript? Все, що я зараз знаходжу, говорить про те, що JS має лише "фальсифікацію" злиття (використання ||
).