使用"和"或语法进行null检查

Ser*_*pov 2 javascript syntax null

在jQuery 特殊事件文章中,我发现了以前没见过的语法:

var threshold = data && data.threshold || 1
Run Code Online (Sandbox Code Playgroud)

我之前见过以下内容:

var threshold = data.threshold || 1
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着:设置为data.threshold或者如果将其值null设置为1.我可以请先解释一下第一语法吗?

cdh*_*wie 6

&&具有更高的关联性||,因此第一个例子实际上意味着:

var threshold = (data && data.threshold) || 1;
Run Code Online (Sandbox Code Playgroud)

您可以将其读作" 仅设置thresholddata.thresholddatadata.threshold没有真值,否则设置为1".如果data是null/undefined/etc并且代码在data.threshold没有首先检查的情况下尝试访问data,则会导致异常.该语法允许以紧凑的方式一次检查两者.