javascript 中是否有空合并(Elvis)运算符或安全导航运算符? [英] Is there a null-coalescing (Elvis) operator or safe navigation operator in javascript?

查看:24
本文介绍了javascript 中是否有空合并(Elvis)运算符或安全导航运算符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我会举例说明:

猫王接线员 (?:)

<块引用>

猫王运算符"是一个缩写Java的三元运算符.一这很方便的实例是为了返回一个合理的默认"值如果表达式解析为 false 或空值.一个简单的例子可能看起来像这个:

def 性别 = user.male ?"male" : "female"//传统的三元运算符用法def displayName = user.name ?: "Anonymous"//更简洁的Elvis操作符

<块引用>

安全导航操作员 (?.)

使用了安全导航操作符以避免 NullPointerException.通常,当您参考您可能需要验证的对象在访问之前它不为空对象的方法或属性.为了避免这种情况,安全导航运算符将简单地返回 null而不是抛出异常,比如所以:

def user = User.find( "admin" )//如果'admin'不存在,这可能为空def streetName = user?.address?.street//如果 user 或 user.address 为 null,streetName 将为 null - 不抛出 NPE

解决方案

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

例如 displayname = user.name ||匿名".

但 Javascript 目前没有其他功能.如果您需要其他语法,我建议您查看 CoffeeScript.它有一些与您要查找的内容类似的速记.

例如存在运算符

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

功能快捷键

()->//等价于 function(){}

性感的函数调用

func 'arg1','arg2'//等价于 func('arg1','arg2')

还有多行注释和类.显然,您必须将其编译为 javascript 或作为 <script type='text/coffeescript>' 插入页面,但它添加了很多功能 :) .使用

登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆