Javascript 什么是&&;当它';它在if语句之外吗?(内部上下文)

Javascript 什么是&&;当它';它在if语句之外吗?(内部上下文),javascript,Javascript,我正在清理我的主页上的一些代码,发现我编写的jquery函数之一是这样的: $(function(){ var hash = window.location.hash; hash && $('[id^=search] a[href="' + hash + '"]').tab('show'); $('[id^=search] a').click(function (e) { $(this).tab('show');

我正在清理我的主页上的一些代码,发现我编写的jquery函数之一是这样的:

$(function(){
        var hash = window.location.hash;
        hash && $('[id^=search] a[href="' + hash + '"]').tab('show');

        $('[id^=search] a').click(function (e) {
        $(this).tab('show');
        var scrollmem = $('body').scrollTop();
        window.location.hash = this.hash;
        $('html,body').scrollTop(scrollmem);
  });
});

当外部链接包含与“我的导航”中的任何哈希匹配的哈希时,此特定内容会更改主页上的选项卡。我已经有一段时间没有处理过这个片段了(这是我为我的网站做的第一件事之一)。我一生都无法在大脑中计算出
hash&&$('[id^=search]a[href=“'+hash+'”)
翻译成什么。如果我认为它是纯英语,它会是什么?

如果你把整个东西放在
If
中,
散列和$('[id^=search]a[href=“'+hash+'“]”)的输出将是一样的

这就像
if
语句:

if (hash) {
  $('[id^=search] a[href="' + hash + '"]').tab('show');
}
这相当于:

hash && $('[id^=search] a[href="' + hash + '"]').tab('show');

如果条件的计算结果为
true
,则仅执行
&
之后的下一条语句。

逻辑运算符&&将仅在第一个操作数为truthy时计算第二个操作数,因此它与

if(hash)
    $('[id^=search] a[href="' + hash + '"]').tab('show');
因此,
$('[id^=search]a[href=“'+hash+''']”)选项卡('show')