Javascript 什么是&&;当它';它在if语句之外吗?(内部上下文)
我正在清理我的主页上的一些代码,发现我编写的jquery函数之一是这样的: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');
$(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')仅当位置中存在哈希值时,才会执行代码>