当前位置: 首页 > 面试题库 >

javascript中是否存在null-coalescing(Elvis)运算符或安全导航运算符?

章烨烨
2023-03-14
问题内容

我将举例说明:

猫王算子(?:)


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

问题答案:

您可以使用逻辑“ OR”运算符代替Elvis运算符:

例如displayname = user.name || "Anonymous"

但是Javascript当前没有其他功能。如果您需要其他语法,建议您查看CoffeeScript。它具有一些速记,与您要查找的类似。

例如存在运算符

zip = lottery.drawWinner?().address?.zipcode

功能快捷键

()->  // equivalent to function(){}

性感函数调用

func 'arg1','arg2' // equivalent to func('arg1','arg2')

还有多行注释和类。显然,您必须将其编译为javascript或插入到页面中,<script type='text/coffeescript>'但这会增加很多功能:)。使用<script type='text/coffeescript'>实际上仅用于开发而非生产。



 类似资料:
  • 问题内容: 在C#中,有一个null-coalescing运算符(写为),允许在赋值期间进行简单(简短)的null检查: 有python等效项吗? 我知道我可以做到: 但是,还有没有更短的方法(我不需要重复)? 问题答案: 好的,必须澄清操作员的工作方式。它是一个布尔运算符,因此可以在布尔上下文中工作。如果值不是布尔值,则出于运算符的目的,它们将转换为布尔值。 请注意,运算符不会仅返回或。相反,如

  • 有人能解释一下PHP中三元运算符速记()和空合并运算符()之间的区别吗? 他们什么时候表现不同,什么时候表现相同(如果发生的话)? VS。

  • 本文向大家介绍Kotlin 空合并/Elvis运算符,包括了Kotlin 空合并/Elvis运算符的使用技巧和注意事项,需要的朋友参考一下 示例 有时希望以if-else方式评估可为空的表达式。Elvis运算符?:可以在Kotlin中用于这种情况。 例如: 如果 data?.first ()或数据本身产生 null 值,则上面的表达式返回“ Nothing here” ,否则返回 data?. f

  • 本文向大家介绍javascript运算符——位运算符全面介绍,包括了javascript运算符——位运算符全面介绍的使用技巧和注意事项,需要的朋友参考一下 前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用。但是,其速度极快,且合理使用能达到很好的效果。本文将介绍javascript中常常被忽视的运算符——位运算符 二进制表示   ECMAScript中的所有数值都以IEEE-754

  • 本文向大家介绍javascript运算符——逻辑运算符全面解析,包括了javascript运算符——逻辑运算符全面解析的使用技巧和注意事项,需要的朋友参考一下 前面的话 逻辑运算符对操作数进行布尔运算,经常和关系运算符一样配合使用。逻辑运算符将多个关系表达式组合起来组成一个更复杂的表达式。逻辑运算符分为逻辑非'!'、逻辑与'&&'、逻辑或'||'3种,本文将介绍这三种逻辑运算符 逻辑非 逻辑非操作

  • 本文向大家介绍什么是MySQL NULL安全相等运算符,它与比较运算符有何不同?,包括了什么是MySQL NULL安全相等运算符,它与比较运算符有何不同?的使用技巧和注意事项,需要的朋友参考一下 与标准SQL IS NOT DISTINCT FROM运算符等效的MySQL NULL安全相等运算符执行等于运算符的相等比较。其符号为<=>。当我们两个操作数都为NULL时,它的性能与比较运算符不同。请看