在网上看了一些例子后,我收集了两种不同的解释:
例如:var x = A || 乙;
- 如果 A 存在而 B 不存在,则返回左侧。
- 如果 A 存在且 B 存在,则返回右侧(最后评估值)。
基于该逻辑,我假设 x 将返回:v.item(0).click()
。但是在测试它时,x 先返回 B,然后是 A,也就是解雇 B,然后也解雇 A。为什么?( http://jsfiddle.net/nysteve/QHumL/59/ )
HTML:
<div class="indeed-apply-button" onclick="alert('BOOM BUTTON');">boo</div>
<div class='view_job_link' onclick="alert('BOOM LINK');">boo</div>
JavaScript
var v = document.getElementsByClassName('view_job_link');
var i = document.getElementsByClassName('indeed-apply-button');
var x = v.item(0).click() || i.item(0).click();
编辑 2013 年 10 月 10 日下午 1:02
没有提及我的真实意图,但根据回答和讨论,我的目标本质上是将下面这段代码转换为我最初提到的 JavaScript 代码。
var v = document.getElementsByClassName('view_job_link');
var i = document.getElementsByClassName('indeed-apply-button');
if(v){v.item(0).click();}
else if(i){i.item(0).click();}
else{}
在上面的代码中,你将如何阅读if(v){v.item(0).click();}
与短路?