我最近遇到了以下 [有效] 句法结构:
d <= f && func3();
实际构造的形式为:
d > f ? a > b ? func1() : func2() : d <= f && func3();
这个构造的目的是什么?
我最好的猜测是,由于运算符中的短路评估,只有在返回错误func3
时才会执行,但我认为这是没有意义的,因为实际函数中的逻辑将防止在该点永远为假代码,从正在执行的 DOM-watching 中可以清楚地看到。d <= f
&&
d <= f
func3
如果您想查看整个代码,我在http://cdn.sstatic.net/js/full.js?v=9358063bfb40中找到了它,由函数中的https://stackoverflow.com/faq引用moveScroller
(完整功能下面,它在d <= f && j.css({...})
必须重置回相对位置的行中)。
function moveScroller() {
var g = $("#scroller").width(),
d = function () {
var d = $(window).scrollTop(),
f = $("#scroller-anchor").offset().top,
j = $("#scroller");
d > f ? j.height() > $(window).height() ? j.css({
position: "fixed",
top: "",
bottom: "0px",
width: g
}) : j.css({
position: "fixed",
top: "0px",
bottom: "",
width: g
}) : d <= f && j.css({
position: "relative",
top: "",
bottom: ""
})
};
$(window).scroll(d).resize(d);
d()
}