javascript – \u0026\u0026 2个变量之外的条件

我最近在facebook上运行的一个脚本上看到了这段代码:

__d("Shaka", [], function a(b, c, d, e, f, g) {
    c.__markCompiled && c.__markCompiled();
    var h = {};

对于以C#为主要开发经验背景的人,我不禁注意到c .__ markCompiled&& Ç.__ markCompiled();线看起来很奇怪.我自己编写了很多javascript代码,但这是我用过的唯一一个地方&&是ifs,for,while等内部条件.这个陈述是做什么的,它背后的逻辑是什么?

最佳答案
这条线

c.__markCompiled && c.__markCompiled();

实际上是一样的

if (c.__markCompiled) c.__markCompiled();

和&&如果左侧的评估是真值(即,未定义,null,0,“”,NaN或false),则运算符仅评估其右侧.

转载注明原文:javascript – \u0026\u0026 2个变量之外的条件 - 代码日志