Tôi sẽ giải thích bằng ví dụ:
Toán tử Elvis (? :)
"Toán tử Elvis" là sự rút ngắn của toán tử tạm thời của Java. Một ví dụ về việc tiện dụng này là để trả về giá trị 'mặc định hợp lý' nếu một biểu thức chuyển thành false hoặc null. Một ví dụ đơn giản có thể trông như thế này:
def gender = user.male ? "male" : "female" //traditional ternary operator usage
def displayName = user.name ?: "Anonymous" //more compact Elvis operator
Toán tử điều hướng an toàn (?.)
Toán tử Điều hướng an toàn được sử dụng để tránh NullPulumException. Thông thường khi bạn có một tham chiếu đến một đối tượng, bạn có thể cần xác minh rằng nó không rỗng trước khi truy cập các phương thức hoặc thuộc tính của đối tượng. Để tránh điều này, toán tử điều hướng an toàn sẽ chỉ trả về null thay vì ném một ngoại lệ, như vậy:
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
??
) trong javascript không? Tất cả mọi thứ tôi tìm thấy cho đến nay cho thấy rằng JS chỉ có "falsey" kết hợp (sử dụng ||
).