gpt4 book ai didi

javascript - 我怎么读这个?

转载 作者:行者123 更新时间:2023-11-30 08:03:57 25 4
gpt4 key购买 nike

我正在尝试理解一个 jQuery 插件,但我在未压缩的源代码中看到了这样的事情:

"y" === self.options.direction && node.stop().scrollTop(floorActive * WH),
"x" === self.options.direction && (node.stop().scrollLeft(floorActive * WW), nodeChildren.each(function(index) {
$(this).css("left", index * WW);
})), chocolate && (nodeChildren.each(function(index) {
$(this).css({
left: self.options.direction[index][1] * WW,
top: self.options.direction[index][0] * WH
});
}), node.stop().scrollLeft(self.options.direction[floorActive][1] * WW).scrollTop(self.options.direction[floorActive][0] * WH));

我也到处看到类似的东西:

return $.each(floorCollection, function() {
(!floor || Math.abs(this[axis] - goal) > Math.abs(floor[axis] - goal)) && (floor = this);
}), floor && -1 !== directionArray.indexOf(floor) ? directionArray.indexOf(floor) : false;

这些东西通常如何用更传统的语法写出来?

最佳答案

这里发生了一些不同的事情 - 我同意其中大多数不一定是最佳实践。

  • 作者似乎在使用 commas to group expressions ,这有效地将它们放入单个语句中。

  • 作者使用的是short-circuit evaluation condition && statement 表示 if (condition) { statement }。使用逗号和括号允许 condition && (expression, expression, expression)if (condition) { statement;陈述;陈述; }。这会导致一些不太清晰的代码,例如 ... && (floor = this),其中语句包含在括号中以允许将其作为表达式进行计算。

  • 作者使用左手比较,即 5 == x 而不是 x == 5。这样做的一个好处是错误使用 = 而不是 == 是语法错误。

  • 作者在比较中使用短路求值,即 (a || b) > foo,它比较 a if a 为真,否则为 b

所有这些都是有效的,我认为没有一个是特别推荐的。尤其是逗号似乎是一种难以辨认的方法。

关于javascript - 我怎么读这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com