什么回调&& callback()在javascript中表示

时间:2013-10-01 15:33:43

标签: javascript

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

callback && callback();

这条线做什么?

6 个答案:

答案 0 :(得分:12)

这是一种速记条件。

如果&&的左边是真,那么&&右侧的任何内容都会被执行。

这句话说如果定义了回调和真实y(非null,false或0),则执行它。

答案 1 :(得分:4)

它说,如果callback不是假的,那么请致电callback。因此,如果左侧为假,&&短路,则右侧将被忽略。但如果左侧为真,则评估右侧,因此它等同于:

if(callback) {
  callback();
}

答案 2 :(得分:2)

首先检查以确保定义callback(更准确地说,它是一个真正的值)。然后,如果是,则调用该函数。

这在定义采用可选回调的函数时很有用。这是检查是否实际给出回调的简便方法。

答案 3 :(得分:1)

&&评估左侧,如果是,则评估右侧,如果是,则返回它。

由于整个表达式的左侧没有任何内容,这相当于:

if (callback) {
    callback();
}

答案 4 :(得分:0)

检查是否定义了回调函数。如果是,则执行回调函数。

答案 5 :(得分:0)

它会检查callback是否为true或false。这与:

相同
if (callback) {
  callback();
}

如果它被评估为true,则标识符被视为一个函数,然后被调用。

如果评估为false,则callback()将不会执行。