Javascript短路(奇怪的使用II/OR运算符)

VSO*_*VSO 5 javascript angularjs

我遇到了这段代码:

<a  ng-click= "item.statusId !== itemStatus.in || transfer()">
Run Code Online (Sandbox Code Playgroud)

我想我们可以概括为:

<element ng-click = "someVar !== someValue || doStuff()">
Run Code Online (Sandbox Code Playgroud)

然后我发现这篇文章是关于短路的,另一篇是关注的文章,一旦我知道它们被称为什么.但是,我仍然没有得到它.

如果第一个语句的计算结果为true,它是否基本上符合OR语句结束评估的原则?因此,如果第一个语句为真,则结束评估,如果为false,则在OR语句的后半部分运行该函数?(这是我要问的主要问题,其他一切都是额外的).

我想我得到的部分是编译器是否以不同方式解释此代码,或者它仍然计算为false并且只运行该函数.甚至不确定如何短语Q.

Max*_*ter 4

如果第一个语句的计算结果为 true,它是否基本上按照 OR 语句结束计算的原则工作?那么如果第一个语句为真,则结束评估,如果为假,则运行 OR 语句后半部分的函数?

它实际上是 if 语句的简写,并且您凭直觉正确地理解了它的工作原理。有关 JavaScript 中短路评估的更多详细信息,请参阅此 Stack Overflow 问题