在jQuery special events article中,我发现了以前没见过的语法:
var threshold = data && data.threshold || 1
我之前见过以下内容:
var threshold = data.threshold || 1
据我所知,这意味着:设置为data.threshold
或其值为null
,然后设置为1
。我可以先解释一下第一种语法吗?
答案 0 :(得分:6)
&&
的关联性高于||
,因此第一个示例实际上意味着:
var threshold = (data && data.threshold) || 1;
只有当threshold
和data.threshold
具有真值时,您才能将其设为“data
设为data.threshold
,否则请将其设为1”。如果data
为null / undefined / etc且代码尝试在未先检查data.threshold
的情况下访问data
,则会导致异常。此语法允许以紧凑的方式立即检查两者。
答案 1 :(得分:3)
在英语中意味着
如果数据真实的话
AND (&&
符号)
data.threshold
是真实的,将threshold
设置为data.threshold
,
或(否则)
将threshold
设置为1。
truthy表示不为null,不是未定义,而不是0(除其他外)。
答案 2 :(得分:1)
&&
返回左侧。否则它会返回右侧。
因此,如果data
为false,则会返回date
,因此||
会传递1
。
如果data
不是假,但是data.threshold
是,则它也会评估为false,因此||
仍会传递1
。
如果data.threshold
为真,则||
通过左侧,data.threshold