gpt4 book ai didi

javascript - Javascript 中这一行的含义和目的 - star[t][0] > x << 1 && (star[t][0] -= w << 1, test = !1)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:36:27 25 4
gpt4 key购买 nike

我在以下网址的页眉中看到了 Canvas 动画 - http://blogs.msdn.com/b/davrous/archive/2011/07/21/html5-gaming-animating-sprites-in-canvas-with-easeljs.aspx

jsfiddle 是 here

在浏览 javascript 代码时,一些烦人的行花了很多时间来理解它们,但仍然没有运气,唯一的选择是向 StackOverflow 的专家询问。

行是(jsfiddle 中的第 85 - 90 行)-

 star[t][0] += mouse_x >> 4, 
star[t][0] > x << 1 && (star[t][0] -= w << 1, test = !1),
star[t][0] < -x << 1 && (star[t][0] += w << 1, test = !1),

所有这些都在 for 循环中运行。对我来说主要的困惑点是,在第 1 行的赋值之后在上面的第 2 行和第 3 行进行这两个比较。当上面第 2 行和第 3 行的这两个比较的结果没有存储到任何变量中时,这样做的目的是什么?

最佳答案

"What's the purpose of this when the result of these two comparisons at line 2 and 3 above isn't stored into any variable ?"

它使用 && 作为 if 的简写,因为 && 运算符首先计算左边的操作数,并且只有当是真实的,它评估右手操作数。

行:

star[t][0] > x << 1 && (star[t][0] -= w << 1, test = !1)

可以重写为:

if (star[t][0] > x << 1) {
star[t][0] -= w << 1, test = !1;
}

(和第三行类似。)

顺便说一句,!1false 的简写。

关于javascript - Javascript 中这一行的含义和目的 - star[t][0] > x << 1 && (star[t][0] -= w << 1, test = !1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14830452/

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