此JavaScript代码是什么意思?
flag &= ~CONST
它是追加,添加,相交还是其他?
最佳答案
这将关闭任何常量代表。
例如,让我们看一个假设的示例代码,它代表窗口的状态:
WS_HASBORDER = 0x01;
WS_HASCLOSEBUTTON = 0x02;
WS_HASMINIMIZEBUTTON = 0x04;
WS_HASMAXIMIZEBUTTON = 0x08;
WS_ISMAXIMIZED = 0x10;
我们可以使用来表示窗口的“状态”
windowState = WS_HASBORDER | WS_HASCLOSEBUTTON | ... etc
现在,假设我们要“关闭”这些状态之一,那就是您的示例代码的作用...
windowState &= ~WS_HASBORDER
现在上面的代码做了什么,就是它得到了右边的WS_HASBORDER的称赞(我想您可以称其为反转位)。
因此,。WS_HASBORDER已打开一个位,其他所有都关闭了。它的补充是将所有位都打开,除了之前已关闭的一位。
由于我已将许多常量表示为字节,因此我仅向您显示一个示例[不是javascript不会将数字表示为字节,您也不能这样做]
WS_HASBORDER = 0x01; //0000 0001
WS_HASCLOSEBUTTON = 0x02; //0000 0010
WS_HASMINIMIZEBUTTON = 0x04; //0000 0100
WS_HASMAXIMIZEBUTTON = 0x08; //0000 1000
WS_ISMAXIMIZED = 0x10; //0001 0000
_现在举个例子
windowState = WS_HASBORDER | WS_HASCLOSEBUTTON | WS_HASMINIMIZEBUTTON |
WS_HASMAXIMIZEBUTTON | WS_ISMAXIMIZED;
0000 0001
0000 0010
0000 0100
0000 1000
and) 0001 0000
--------------
0001 1111 = 0x1F
所以... windowState获取值0x1F
windowState&=〜WS_HASMAXIMIZEBUTTON
WS_HASMAXIMIZEBUTTON: 0000 1000
~WS_HASMAXIMIZEBUTTON: 1111 0111
..完成我们的计算
windowState
&) ~WS_HASMAXIMIZEBUTTON
becomes
0001 1111
&) 1111 0111
-------------
0001 0111 = 0x07
这是您产生的标志:
上:
WS_HASBORDER
WS_HASCLOSEBUTTON
WS_HASMINIMIZEBUTTON
WS_ISMAXIMIZED
关:
WS_HASMAXIMIZEBUTTON
希望能有所帮助。回到拖延的作业,我去了!哈哈。