【问题标题】:What does the christmas-tree-Operator (>>~) do? [closed]圣诞树运算符 (>>~) 是做什么的? [关闭]
【发布时间】:2016-03-25 09:51:45
【问题描述】:

自从我注意到最近几天 Javascript 有很多由基本运算符组合指定的单个运算符,我做了一些研究,发现周围有很多(!)好问题(至少那是投票告诉我)。

我从昨天和今天开始注意到那些看起来很不寻常的运算符得到解释。

What does 'x << ~y' represent in JavaScript?

What does "!--" do in JavaScript?

所以当我在其中一个 cmets 中看到这个 >>~ 运算符后,我只是感到渴望在我们社区的职责中提出这个问题。

圣诞树操作员在这样的环境中实际上做了什么:

christmas=

!0
0 >>~
!-0;

我也在考虑,让蜡烛燃烧可以吗,即使爸爸没有观察:

christmas=

!0
0 >>~

如果孩子们也走了,我们能否识别它christmas

christmas=

>>~

?

【问题讨论】:

  • 两个运算符:Right shift &gt;&gt;Bitwise NOT ~
  • 咆哮是怎么回事?
  • 我会考虑将您的问题减少到您只问这是做什么的程度。否则很多人可能不会费心通读所有这些内容。
  • 我投票结束这个问题作为离题,因为这个问题(有没有?)是一个巨大的混乱。

标签: javascript


【解决方案1】:

这一行最终会在 ASI 之后插入一个分号:

!0

不是0(一个假值),而是true

&gt;&gt; 右移和~ 按位非之后没有插入 ASI 分号,所以这被评估为一行:

0 >>~
!-0

可以(更正确地写)为:

0 >> ~!-0

零只能右移为零,但无论如何我们都会分解右侧。按位非、布尔非和 0 的数字转换。

-0 == 0
!0 == true
~true = -2

同样,右移右侧的内容并不重要,因为零只是一堆零位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2021-04-02
    • 2019-06-10
    • 2014-01-13
    • 1970-01-01
    相关资源
    最近更新 更多