我有一个hamlc(称为Haml + Inline CoffeeScript),它有一行像
- @variable1 ?= @object1.element[0]
我想知道这是否意味着:如果@object1.element[0]
有值,则将其存储在@variable1
内。
我找不到有关hamlc的任何信息。另外,如果我理解的是正确的,如果我想添加else
条件怎么办?
答案 0 :(得分:2)
?=
运算符在CoffeeScript中称为existential operator。
来自文档:
检查JavaScript中是否存在变量有点困难。 if(variable)...接近,但是为零,空字符串和false。 CoffeeScript的存在运算符?除非变量为null或未定义,否则返回true,这使得它类似于Ruby的nil?
这意味着它的工作方式是,使用你的例子:
@variable1 ?= @object1.element[0]
如果@variable1
为null
或undefined
,请为其指定@object1.element[0]
。
如果我想为“else”添加条件怎么办?
@variable1 =
if @variable1?
@object1.element[0]
else
# your else clause here