我目前正在使用angularjs,并且有这段代码。我不明白它还能回什么?
authorize: function(accessLevel, role) {
if(role === undefined) {
role = Session.role;
}
return accessLevel.bitMask & role.bitMask;
},一些测试
console.log(1&2); //0
console.log(3&7); //3
console.log(5&11); //1
console.log(0.5&11); //0有人知道吗?
编辑:很抱歉这个问题已经被问到了。但由于我不知道关键字按位,或找不到任何匹配之前的主题关键字在我的presearch,我学徒这里的答案!
发布于 2014-08-13 20:01:53
简单地说,&是一个AND操作。return表达式检查role "jive“中的位是否与accessLevel中的位(即该角色是否被授权)。
为了增加一些细节,让我们看看这一行:
console.log(3&7); //3在比特土地上,我们有:
3: 00000011
7: 00000111
===========
&: 00000011 = 3两个字节上的逐位AND操作的结果是由AND-ing根据以下规则得出的--每个位列:
0 & 0 => 0
0 & 1 => 0
1 & 0 => 0
1 & 1 => 1如果您认为每个0都是false,而每个1都是true,那么这就很有意义了。有关此问题的更多信息,请参阅维基百科关于真值表的文章。
发布于 2014-08-13 20:02:51
在两个操作数的对应位数为1的每个位置返回一个。
https://stackoverflow.com/questions/25295077
复制相似问题