javascript中是否有空合并(Elvis)运算符或安全导航运算符?
2022-08-30 00:31:18
我将通过示例进行解释:
猫王操作员 (?: )
“Elvis 运算符”是 Java 三元运算符的缩写。这很方便的一个实例是,如果表达式解析为 false 或 null,则返回“合理的默认值”值。一个简单的示例可能如下所示:
def gender = user.male ? "male" : "female" //traditional ternary operator usage
def displayName = user.name ?: "Anonymous" //more compact Elvis operator
安全导航操作员 (?.)
安全导航运算符用于避免 NullPointerException。通常,当您具有对对象的引用时,可能需要在访问对象的方法或属性之前验证该对象是否不为 null。为了避免这种情况,安全导航运算符将只返回 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