Javascript 如何在coffeescript中链接存在运算符

Javascript 如何在coffeescript中链接存在运算符,javascript,coffeescript,Javascript,Coffeescript,假设我在coffeescript中有一个对象引用,如下所示: object.param.foo.bar 我想确认酒吧是否存在?我该怎么做 我相信object.param.foo?.bar测试foo是否存在,如果它不存在,则返回undefined,但object.param.foo.bar?将整个表达式转换为布尔测试 我想要的是返回object.param.foo.bar(如果存在)和未定义(如果不存在)。我想您正在寻找表达式 object.param?.foo?.bar 它假定存在对象,如果

假设我在coffeescript中有一个对象引用,如下所示:

object.param.foo.bar
我想确认酒吧是否存在?我该怎么做

我相信
object.param.foo?.bar
测试
foo
是否存在,如果它不存在,则返回
undefined
,但
object.param.foo.bar?
将整个表达式转换为布尔测试


我想要的是返回
object.param.foo.bar
(如果存在)和
未定义(如果不存在)。

我想您正在寻找表达式

object.param?.foo?.bar

它假定存在
对象
,如果
.param
.foo
.bar
属性不存在,则返回
未定义的
。你可以省略
s,如果你知道它们确实存在。

我不确定我是否理解你的问题(如何
object.param.foo?.bar
不做你想做的事?你还没有告诉我们。)

但是,如果要全程执行空检查(如果
对象
对象.param
对象.param.bar
为空),可以使用:

bar = object?.param?.foo?.bar

如果此链中的任何内容为空或未定义,则会生成
undefined
,如果存在
object.param.foo.bar

object.param.foo.bar
已返回值(如果存在),如果不存在,则返回undefined。请澄清您的问题。
object.param.foo?.bar
以什么方式没有做你想做的事情?