Javascript 如何在coffeescript中链接存在运算符
假设我在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 它假定存在对象,如果
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
以什么方式没有做你想做的事情?