&安培;&安培;两个变量之间的条件

时间:2016-06-18 14:39:05

标签: javascript

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

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

对于那些以C#作为主要开发经验背景的人,我无法提醒,但注意到c.__markCompiled && c.__markCompiled();行看起来很奇怪。我自己编写了相当多的javascript代码,但我唯一使用&&的地方就是if s,forwhile等内部条件等等。这句话的作用是什么,背后的逻辑是什么?

2 个答案:

答案 0 :(得分:4)

该行

c.__markCompiled && c.__markCompiled();

实际上与

相同
if (c.__markCompiled) c.__markCompiled();

&&运算符仅在左侧的评估为真值(即undefinednull,{{1}时评估其右侧}},0""NaN)。

答案 1 :(得分:1)

&&运算符与if语句中使用的运算符相同。

如果if中的所有元素都与&&相互比较,则只要达到false值就会停止。

永远不会执行

false && some_function();

每次都会执行

true && some_function();

你甚至可以测试一个函数,如果是,则调用其他函数

test_me() && call_if_true();

它与:

相同
if (test_me()) { call_if_true(); }

你也可以坚持下去:

test1() && test2() && some_thing() && something_else();

最后一个会在达到等于false的值时停止。

Javascript是一个美女...