ฉันจะอธิบายด้วยตัวอย่าง:
Elvis Operator (?:)
"ตัวดำเนินการ Elvis" เป็นการย่อของตัวดำเนินการแบบไตรภาคของ Java อินสแตนซ์หนึ่งที่ซึ่งมีประโยชน์สำหรับการส่งคืนค่า 'ค่าเริ่มต้นที่สมเหตุสมผล' หากนิพจน์แก้ไขเป็นเท็จหรือเป็นโมฆะ ตัวอย่างง่ายๆอาจมีลักษณะเช่นนี้:
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 มีการรวมกันของ "falsey" เท่านั้น (โดยใช้||
)