callback && callback()在javascript中意味着什么

Run*_*ion 11 javascript

我正在浏览一些JS代码并偶然发现了我不理解的以下行:

callback && callback();
Run Code Online (Sandbox Code Playgroud)

这条线做什么?

Ada*_*dam 13

这是一个速记条件.

如果左边的&&是真实的y,则&&执行右侧的任何内容.

该语句表示如果定义了回调并且为true-y(非null,false或0),则执行它.


jbr*_*jbr 5

它说,如果callback不是假的,则调用callback。所以&&如果左边是假的短路,那么右边将被忽略。但是,如果左侧为真,则评估右侧,因此等效于:

if(callback) {
  callback();
}
Run Code Online (Sandbox Code Playgroud)